美文网首页
UIScrollView一些小细节

UIScrollView一些小细节

作者: NateLam | 来源:发表于2017-05-10 09:24 被阅读14次

    scrollView.contentSize = imageView.frame.size 或者等于imageView.image.size

    当scrollView没有设置contentSize, 但又需要下拉刷新, 需要将alwaysBounceVertical 设为YES

    设置UIEdgeInset其实就是增加滚动范围, 音乐播放器歌词初始一般是从中间开始显示, 设置的是contentOffset的y值为负数, 为什么是负的, 就是scrollView的原点位置y值, 减去要显示的位置的y值, 小-大, 所以是负数.
    但是当用户碰一下歌词, 歌词就会立马回弹到顶部, 为了避免这种情况, 应该设置UIEdgeInsetMake的第一个参数, 也就是距上为刚才负数的绝对值, 这样就能慢慢随着用户向上滑动, 歌词慢慢往上滚动

    屏幕快照 2017-05-10 上午11.43.01.png

    关于分页效果, 是以scrollView的尺寸作为每一页的区分的

    关于自动轮播的时候定时器暂停工作

    加上这句

    [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
    

    不加之前添加定时器的时候

    self.timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(handleUpdate:) userInfo:nil repeats:YES];
    

    默认处于NSRunLoopCommonModes模式, 而修改后的NSRunLoopCommonModes是一个共用模式, 让主线程分配一点资源给定时器, 而不是同一时间只能做一件事, 不是tableview滚动, 就是定时器滚动, 这样显示效果并不好

    顺便提一句, UITableViewController自带的view就等同于自带的tableView属性, 通过打印%s, 查看两者的指针可得出结论
    如果不使用重用池, 那么离开屏幕的cell就会被销毁, 自动调用dealloc
    建议在viewDidLoad上面, 也就是vc找块空地, 声明cell标识符, 如:

    static NSString *ID = @"balabala";
    

    方便后续注册cell以及根据标识符取出cell能用到

    相关文章

      网友评论

          本文标题:UIScrollView一些小细节

          本文链接:https://www.haomeiwen.com/subject/djpwtxtx.html