iOSUI基础05

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

UIScrollViewUIScrollView使用的步骤1.创建UIScrollView2.将需要展示的内容添加到UIScrollView中3.设置UIScrollView的滚动范围 (contentSize)注意: 如果想让UIScrollView进行滚动, 必须设置可以滚动的范围scrollView不能滚动的几种情况1.没有设置contentSize2.scrollEnabled属性 = NO3.userInteractionEnabled属性 = NOenabled和userInteractionEnabled的区别enabled: 代表控件不可用userInteractionEnabled: 代表控件不可以和用户交互, 也就是不能响应用户的操作常用属性去滚动条滚动条也是scrollView的子控件的一部分 //滚动条可能在子控件的前面, 也可能在子控件的后面 //正是因为这个原始, 所以以后在开发中不推荐大家通过subviews获取子控件的方式来操作子控件self.scrollView.showsHorizontalScrollIndicator =NO;self.scrollView.showsVerticalScrollIndicator =NO;

设置滚动条的样式self.scrollView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

默认下UIScrollView有一个回弹效果 只要设置了contentSize就有回弹效果self.scrollView.bounces =YES/NO;

哪怕没有设置contentSize也可以有回弹效果self.scrollView.alwaysBounceVertical =YES;self.scrollView.alwaysBounceHorizontal =YES;

设置边距contentInsetself.scrollView.contentInset = UIEdgeInsetsMake(10,20,30,40);

设置内容偏移位(contentOffset)其实就是设置scrollView滚动到什么地方告诉scrollView x方向要移动多少, y方向要移动多少如果x是正数: 图片往左边移动如果x是负数: 图片往右边移动同理y是正数: 图片往上移动同理y是负数: 图片往下移动计算公式: 永远都是以 控件的左上角 – 内容的左上角代理方法只要成为了UIScrollView的代理, 遵守代理协议, 实现协议中的方法当UIScrollView发生一些变化的时候, 系统就会自动调用这些代理方法只要UIScrollView滚动了, 系统就会自动调用-(void)scrollViewDidScroll:(UIScrollView *)scrollView只要用户准备开始拖拽了就会调用- -(void)scrollViewWillBeginDragging:(nonnullUIScrollView *)scrollView

用户已经结束拖拽, 代表用户已经松手了 系统调用了该方法并不代表着,UIScrollView已经停止滚动了- -(void)scrollViewDidEndDragging:(nonnullUIScrollView *)scrollView willDecelerate:(BOOL)decelerate

只有执行了这个方法才代表UIScrollView已经停止滚动了- -(void)scrollViewDidEndDecelerating:(nonnullUIScrollView *)scrollView

+注意:如果想在UIScrollView停止滚动之后做一些操作, 有两种情况1.没有惯性的情况: 只会调用 停止拖拽的方法, 不会调用停止减速的方法2.有惯性的情况: 既会调用 停止拖拽的方法, 也会调用停止减速的方法所以: 以后要判断UIScrollView是否停止滚动, 需要同时重写两个方法+ scrollViewDidEndDragging

+ scrollViewDidEndDecelerating

缩放1.成为代理, 通过代理方法告诉UIScrollView要缩放哪一个子控件在此方法中告诉UISrollView要缩放哪一个控件- -(nullableUIView *)viewForZoomingInScrollView:(nonnullUIScrollView *)scrollView

2.要想缩放, 除了告诉UISrollView要缩放哪一个控件以外, 还要告诉UISrollView最小能缩多小, 最大能放多大self.sc.maximumZoomScale =2.0; 最大2.0self.sc.minimumZoomScale =0.5; 最小0.5

3.缩放的过程中调用和scrollViewDidScroll一样, 只要缩放一点点就会调用-(void)scrollViewDidZoom:(nonnullUIScrollView *)scrollView

缩放结束时调用-(void)scrollViewDidEndZooming:(nonnullUIScrollView *)scrollView withView:(nullableUIView *)view atScale:(CGFloat)scale

UipageControl

@PRoperty(nonatomic)NSInteger numberOfPages; 设置最大页数// default is 0@property(nonatomic)NSInteger currentPage;

设置页码// 通过KVC给UIPageControl的私有属性赋值, 设置自定义图片

[self.pageControl setValue:[UIImage imageNamed:@"current"] forKeyPath:@"_currentPageImage"];

[self.pageControl setValue:[UIImage imageNamed:@"other"] forKeyPath:@"_pageImage"];

NSTimer

// 注意:NSTimer应该是weak// 为什么NSTimer应该是weak, 因为只要创建一个NSTimer对象, 该对象就会被主线程强引用@property (weak,nonatomic) NSTimer *timer;// scheduledTimerWithTimeInterval: 创建一个定时器, 并且立即可是计时// TimeInterval: 间隔时间// target: 调用谁的方法// selector: 调用什么方法// userInfo: 需要传递什么参数// repeats: 是否重复// 每隔2.0秒调用一次self的nextPage方法, 并且不传递任何参数

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];// 主线程在处理其它事件的时候, 分一点时间来处理NSTimer

[[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];

}// 只要调用invalidate方法, 系统就会将NSTimer从主线程移除, 并且销毁NSTimer对象

[self.timer invalidate];

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航