iOS开发UI系列之UIScrollView

本文将详细介绍如何在Swift中使用UIScrollView进行各种操作,包括设置滚动范围、内边距、滚动位置、显示隐藏滚动条、是否分页、禁止弹簧效果等,并展示了UIScrollView代理方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 滑动(UIScrollView)基本使用

1.0 如果UIScrollView上有UIButton且想有点击有高亮效果需要关闭UIScrollView的DelayContentTouch属性为NO

  1. self.scrollView.delaysContentTouches = NO;

1.1 设置控件不可以和用户交互

  1. self.scrollView.userinteractionEnable = NO;

1.2 设置scrollView不可滚动

  1. self.scrollView.enable = NO;

1.3 设置图片滚动范围(一)

  1. // 1.设置图片滚动范围
  2. //    self.minionScroll.contentSize = CGSizeMake(892, 632);
  3. //    self.minionScroll.contentSize = self.minionImage.frame.size;
  4. self.minionScroll.contentSize = self.minionImage.image.size;

1.3 设置图片滚动范围(二)

  1. // 取出scrollView中最后一个控件
  2. UIImageView *image = [self.scrollView1.subviews lastObject];
  3. // 计算最后一个控件X值加上这个控件的宽度
  4. CGFloat contentW = CGRectGetMaxX(image.frame);
  5. self.scrollView1.contentSize = CGSizeMake(contentW, 0);

1.4 设置滚动后四周预留空白范围(内边距)

  1. self.minionScroll.contentInset = UIEdgeInsetsMake(10, 20, 30, 40);

1.5 设置滚动的位置(偏移量)

  1. self.minionScroll.contentOffset = CGPointMake(10, 20);
  1. CGPoint point = self.minionScroll.contentOffset;
  2. point.x += 10;
  3. point.y += 10;
  4. // 更改滚动位置以动画形式执行
  5. [self.minionScroll setContentOffset:point animated:YES];

1.6 显示隐藏滚动条

  1. showsHorizontalScrollIndicator : 水平滑动条
  2. showsVerticalScrollIndicator : 垂直滑动条
  3. shouldGroupAccessibilityChildren : 待确认
  4. self.scrollView.showsVerticalScrollIndicator = NO;

1.7 设置是否分页

  1. self.scrollView.pagingEnabled = YES;

1.8 禁止弹簧效果

  1. self.scrollView.bounces = NO

1.9 设置scrollView总是有弹簧效果

  1. // 垂直方向总有弹簧效果
  2. self.scrollView.alwaysBounceVertical = YES;
  3. // 水平方向总有弹簧效果
  4. self.scrollView.alwaysBounceHorizontal = YES;

2.UIScrollView代理的方法

2.1 监听开始拖拽

  1. - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
  2. {
  3.    // 监听开始拖拽时可以执行一些代码......
  4. }

2.2 监听拖拽减速

  1. - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
  2. {
  3.      // 监听停止拖拽时可以执行一些代码......
  4. }

2.3 监听停止拖拽

  1. - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
  2. {
  3. }
2.4 监听正在滚动
  1. - (void)scrollViewDidScroll:(UIScrollView *)scrollView
  2. {
  3.    // 监听正在滚动时可以执行一些代码......
  4. }

2.5 监听scrollView上那个子控件进行缩放

  1. // 监听scrollView上的那个子控件进行缩放
  2. - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
  3. {
  4.    return _scrollView;
  5. }
  6. - (vodi)viewDidLoad

  7. {

  8.    // 缩放比例

  9.     self.scrollView.maximumZoomScale = 2;
  10.     self.scrollView.minimumZoomScale = 0.8;

  11. }

2.6 监听时实缩放比较

  1. /**
  2. * 监听缩放比例
  3. *
  4. * @param scrollView
  5. */
  6. - (void)scrollViewDidZoom:(UIScrollView *)scrollView
  7. {
  8. NSLog(@"%2f", self.scrollView2.zoomScale);
  9. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值