资讯专栏INFORMATION COLUMN

IOS ScrollView

youkede / 2007人阅读

摘要:很重要当中随处可见,分页,图片放大等区别都是表示位置和大小在父坐标系中,在自己的坐标系中初始化时候要设置需要滚动视图的大小是滚动之后位置偏移量跟保持一致设置计算适合屏幕宽度或者高度的比例大小模式开始大小比例设置被的这个视图居中屏幕设

scroll View很重要 app当中随处可见,分页,tableview 图片放大等 frame bounds区别

都是表示位置和大小
frame 在父View 坐标系中,bounds在自己的坐标系中

ContentSize Contentoffset

ContentSize :scrollview 初始化时候要设置 需要滚动视图的大小

Contentoffset 是滚动之后位置偏移量 跟scroll view bounds保持一致

Demo
@interface ScrollVC() 
@property (strong ,nonatomic) UIScrollView * scrollView;
@property (strong ,nonatomic) UIImageView * imageView;
@end

@implementation ScrollVC
- (void)viewDidLoad {
    [super viewDidLoad];
    self.imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bigPic"]];
    self.scrollView=[[UIScrollView alloc]initWithFrame:self.view.bounds];

    self.scrollView.backgroundColor=[UIColor blackColor];
    self.scrollView.contentSize=self.imageView.bounds.size;

    [self.view addSubview:_scrollView];
    [self.scrollView addSubview:_imageView];
    self.scrollView.delegate=self;




    [self setScale];
}


// 设置 scroll
-(void)setScale{
    CGSize boundSize=self.scrollView.bounds.size;
    CGSize imageSize=self.imageView.bounds.size;

    float xScale=boundSize.width/imageSize.width;
    float yScale=boundSize.height/imageSize.height;
   //计算 适合屏幕 宽度 或者 高度的比例大小 fit 模式
    float zoomScale=MIN(xScale, yScale);
    //_scrollView.frame=self.view.bounds;
    _scrollView.minimumZoomScale=zoomScale;
    //开始 大小比例
    _scrollView.zoomScale=zoomScale  ;
    _scrollView.maximumZoomScale=3.0;

    //CGSize boundSize=self.scrollView.bounds.size;
    CGRect frameToCenter=_imageView.frame;
    //设置 imageView 被scroll的这个视图 居中屏幕
    if(frameToCenter.size.width

ContentInset使用

当scroll view 被navigationbar 挡住时候 往下移位设置

UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0,CGRectGetHeight(_myMsgInputView.frame), 0.0);
    self.scrollView.contentInset = contentInsets;
contentInset实际上是内容的padding 比如tableview 底部如果不设padding 就会被tabbar 挡住

UIEdgeInsetsMake顺序为 上 左 下 右

scrollview 键盘显示内容遮挡问题

TPKeyboardAvoiding 这个包 封装 键盘 show hide 动态修改scroll 的 contestinset来解决问题。
https://github.com/michaeltyson/TPKeyboardAvoiding

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15714.html

相关文章

  • IOS学习笔记——iOS组件之UIScrollView详解

    摘要:做出此决定,它暂时拦截触摸按下事件通过启动一个定时器,并在定时器触发之前,看是否触摸手指做任何运动。如果定时器触发无位置显著的变化,滚动视图将跟踪事件的内容视图的感动子视图。 引言 UIScrollView的是几个UIKit类包括的UITableView和UITextView中的超类。 一个UIScrollView对象(或者,简单地说,一个滚动视图)的核心概念是,它是一个视图,其起...

    pubdreamcc 评论0 收藏0
  • [分享]iOS开发-限制scrollview(包括tableView)滑到顶点或底部后的滑动

    摘要:使用代理将代理目标设为不需要这一部,因为本身就继承于当前显示区域定点相对于顶点的偏移量原点可以滚动的区域的的顶点相对于的位置与的值相等时,说明已经滑到底部了,即偏移量达到最大值滑到顶部滑到底部 1.使用代理 2.将代理目标设为self(UITableView不需要这一部,因为UITableView本身就继承于UIScrollView) self.scrollView.delegat...

    NickZhou 评论0 收藏0
  • ios开发学习-UIScrollView

    摘要:的用法将需要展示的内容添加到中设置的属性,告诉所有内容的尺寸,也就是告诉它滚动的范围能滚多远,滚到哪里是尽头无法滚动的解决办法如果无法滚动,可能是以下部分原因没有设置滚动范围设置例如等价于没有接收到触摸事件没有取消功能要想滚动,必须取消的属 1 、UIScrollView 的用法: (1)将需要展示的内容添加到 UIScrollView 中(2)设置 UIScrollView 的 c...

    lindroid 评论0 收藏0
  • iOS10.0原生刷新控件UIRefreshControl的简单使用

    @available(iOS 10.0, *) open var refreshControl: UIRefreshControl? class ViewController: UIViewController { var scrollView: UIScrollView? override func viewDidLoad() { ...

    shiguibiao 评论0 收藏0
  • iOS广告页的编写

    摘要:功能在我们刚刚打开时,一般首页会有一个广告展示的页面,能显示几张自动翻滚的图片,还能通过点击来跳转到对应页。上了三个当前显示的显示的前一个显示的后一个。的为的,因为控件显示的是的中间页。通过来重新设置显示的内容。 功能: 在我们刚刚打开App时,一般首页会有一个广告展示的页面,能显示几张自动翻滚的图片,还能通过点击来跳转到对应页。 如下图: showImg(http://myp...

    you_De 评论0 收藏0

发表评论

0条评论

youkede

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<