用到UIScrollview的翻页效果时,有时需要显示一部分左右的内容,但是UIScrollView的PagingEnabled只能翻过整页,下面几个简单的设置即可实现

技术点:

1. 创建一个继承UIView的视图,并设置clipsToBounds= YES

2. 添加一个UIscrollView控件,将其宽度设置为自定义翻页的宽度

3. 设置UIScrollview 的clipsToBounds= NO

4. 确保本View的宽度大于UIScrollView的宽度用于显示预览内容

5. 重写本View的hittest方法,为了确保用户滑动UIscrollview以外的空间时也可以触发UIscrollview滑动

ok! 下面是代码,为了方便,使用图片作为显示的每一页

#define kLJItemWidth 240@implementation MyScrollview    {UIScrollView *scrollview;
}- (id)initWithFrame:(CGRect)frame {self = [super initWithFrame:frame];if (self) {scrollview = ({UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(40, 0, kLJItemWidth, frame.size.height)];scroll.pagingEnabled = YES;scroll.clipsToBounds = NO;scroll;})                                                                                      ;[self addSubview:scrollview];self.clipsToBounds = YES;}return self;
}-(void)loadImages:(NSArray *)array{int index = 0;[scrollview.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];for(NSString * name in array){UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:name]];iv.contentMode = UIViewContentModeScaleToFill;CGRect fra = iv.frame;fra.size.width = kLJItemWidth;fra.origin.x = index * kLJItemWidth;iv.frame = fra;[scrollview addSubview:iv];index++;}scrollview.contentSize = CGSizeMake(scrollview.frame.size.width*index, scrollview.frame.size.height);
}- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{UIView *view = [super hitTest:point withEvent:event];if ([view isEqual:self]){for (UIView *subview in scrollview.subviews){CGPoint offset = CGPointMake(point.x - scrollview.frame.origin.x + scrollview.contentOffset.x - subview.frame.origin.x,point.y - scrollview.frame.origin.y + scrollview.contentOffset.y - subview.frame.origin.y);if ((view = [subview hitTest:offset withEvent:event])){return view;}}return scrollview;}return view;
}@end

转载于:https://www.cnblogs.com/v-jing/p/3509219.html

IOS开发之--UIScrollView pagingEnabled自定义翻页宽度相关推荐

  1. C#在控件中绘制矩形、圆、线段等(切换不同的图片,自定义翻页控件,通过委托监控某个字段)

    1.效果展示 2 自定义翻页控件 public partial class PageManagemen : UserControl{/// <summary>/// 当前页(从1开始计数) ...

  2. viewpager 自定义翻页效果_Android RecyclerView自定义LayoutManager

    在第一篇中已经讲过,LayoutManager主要用于布局其中的Item,在LayoutManager中能够对每个Item的大小,位置进行更改,将它放在我们想要的位置,在很多优秀的效果中,都是通过自定 ...

  3. iOS动效-利用CATransform3D实现翻页动画效果

    从事iOS开发已经有一段时间了,之前一直忙于工作,几乎很少有时间写一些东西来对自己掌握的技术进行一下总结,现在想想,有些后悔,因为之前在遇见问题的时候或者学习新技术的时候都是在翻看他人的博客或者查看苹 ...

  4. Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器

    在Silverlight应用程序和客户进行交互工作的时候可以不用写后台代码而通过Xaml代码来实现,在本文我们将学习了解Trigger触发器. Trigger触发器:引发动作的因素,比如鼠标点击.键盘 ...

  5. viewpager 自定义翻页效果_轻松打造专业的录音棚效果,连网红用了都说好的唱吧声卡K10套装...

    不得不说,近几年来的网红文化的盛行,随着智能手机的普及,我们在不知不觉中,已经步入了这个人人都是自媒体的时代,而短视频以及直播APP的风行,已经让更多普通人迷上了直播为生活带来的无限乐趣.可能,就是在 ...

  6. pyqt5 下拉 多页 点击_PyQt5实战——自定义翻页控件实现

    分页控件效果图 一.环境要求 python解释器:python3.7.4 依赖:PyQt5.sys模块 二.思路分析 1.布局:"上一页"."下一页"等butt ...

  7. ios动态效果实现翻页_动画:UIKitAnimation 简单动画学习 iOS (一) 渐变 、 移动 、翻页、来回翻转 | 学步园...

    转载请说明(谢谢) http://blog.csdn.net/a21064346/article/details/7851695 以下 一个系列的 动画效果 在 UIView.h文件中可以查找.但是比 ...

  8. 基于Linux+6818开发板实现普通电子相册翻页功能

    更多资料请点击:我的目录 本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢. 首先是外部进程传参,传进的是某目录文件的路径(绝对路径/相对路径).接着 ...

  9. vue自定义翻页组件

    效果图如下: 1.在components建立page.vue文件 <template><div class="pagination"><!-- 上 - ...

最新文章

  1. linux at shell,shell 用at命令来计划执行作业
  2. 读取excel文件内容代码
  3. css鼠标移入线条延中心伸长,css动画效果:鼠标移上去底部线条从中间往两边延伸 - 子成君-分享出去,快乐加倍!-旧版已停更...
  4. 求逆矩阵计算器_991CN的矩阵运算
  5. php+代码模板下载地址,简单而强大的PHP模板引擎
  6. 软件过程评估和软件能力评价的方法与步骤
  7. 实例:评审速度与缺陷密度之间的相关性
  8. html标签acronym没用,acronym_废弃 | Obsolete_HTML_参考手册_非常教程
  9. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django
  10. 问题解决——OpenGL超级宝典 关于gltDrawTorus的错误解决
  11. qTip Style
  12. .NET下解析Json的方法
  13. mysql中的事务和锁_MySQL中的事务和锁
  14. 【iOS】崩溃收集和解析
  15. java vcf文件 昵称怎么写,Vcf文件的突变ID号注释
  16. pacs系统片子往服务器传输方式,PACS系统-医学影像的传输.ppt
  17. 基于OBS超低延迟直播实测(400毫秒左右)超多组图
  18. Android NFC开发概述
  19. 前端项目线上环境搭建(Nginx)和线上部署(推荐)
  20. 电子行业求职,技术才是硬道理

热门文章

  1. ei指什么_SCI、EI、SSCI和ISTP的区别!
  2. android java 圆角_java – Android:给一个webview圆角?
  3. 服务器怎么虚拟化内存,服务器虚拟化内存大小
  4. mysql列名可以用中文吗_用了这么久的MySQL,你知道它的存储引擎吗?
  5. macbookpro合盖后掉电_macbookpro外接显示器,主机盖还是不盖?
  6. 收益 or 挑战?Serverless 究竟给前端带来了什么
  7. echart 时间滚动_基于 ECharts 封装甘特图并实现自动滚屏
  8. android audiotrack权限,Android中AudioRecord和AudioTrack的使用注意
  9. python第三方插件登录网易音乐_python3-使用requests模拟登录网易云音乐
  10. 贝叶斯分类器的matlab实现_贝叶斯实验