IOS开发之--UIScrollView pagingEnabled自定义翻页宽度
用到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(, , 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 = ;
[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
IOS开发之--UIScrollView pagingEnabled自定义翻页宽度的更多相关文章
- iOS开发UI篇—Quartz2D(自定义UIImageView控件)
iOS开发UI篇—Quartz2D(自定义UIImageView控件) 一.实现思路 Quartz2D最大的用途在于自定义View(自定义UI控件),当系统的View不能满足我们使用需求的时候,自定义 ...
- FineReport——JS二次开发(自定义翻页按钮)
FR允许自定义工具栏上面的按钮,并提交JS方法: 对于翻页功能,大概有首页,下一页,上一页,最后一页,以及跳转页等功能. 不得不说的是,在HTML页面自定义的按钮如何获取到报表模板,通过FR提供的JS ...
- SharePoint 2013 自定义翻页显示列表项
项目需求:自定义开发一个能分页显示列表项的小部件,允许左右翻页,能根据用户权限来显示管理链接等. 效果如下: 技术要求:使用sharepoint rest API 来获取列表项,这样性能高,能够快速响 ...
- IOS开发之功能模块--自定义导航控制器类常用自定义的代码
前言:本文篇幅不多,但是涉及到的内容却是开发中常用的. 涉及的内容: 1.统一设置导航控制器子控制器的返回按钮. 2.因为修改了系统的返回按钮,所以还需要设置手势事件. 3.隐藏底部的工具条. 这里直 ...
- IOS开发UI篇之──自定义UIActionSheet
转载自:http://www.cnblogs.com/pengyingh/articles/2343200.html UIActionSheet类系IOS开发中实现警告框的重要的类,而在好多应用中,都 ...
- iOS开发基础-UIScrollView实现图片缩放
当用户在 UIScrollView 上使用捏合手势时, UIScrollView 会给 UIScrollViewDelegate 协议发送一条消息,并调用代理的 viewForZoomingInScr ...
- iOS开发基础-UIScrollView基础
普通的 UIView 不具备滚动功能,不能显示过多的内容.UIScrollView 是一个能够滚动的视图控件,可用来展示大量的内容. UIScrollView 的简单使用: 1)将需要展示的内容添 ...
- iOS开发多线程篇 11 —自定义NSOperation
iOS开发多线程篇—自定义NSOperation 一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UI ...
- 动画:UIKitAnimation 简单动画学习 iOS (一) 渐变 、 移动 、翻页、来回翻转 ——转载
转载请说明(谢谢) http://blog.csdn.net/a21064346/article/details/7851695 点击打开链接 以下 一个系列的 动画效果 在 UIView.h文件中可 ...
随机推荐
- $("").click与onclick的区别
onclick是绑定事件,click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,下面示例 Html代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- 直接请求json文件爬取天眼查企业信息(未解决验证码问题)——python3实现
几个月前...省略一堆剧情...直接请求json文件爬取企业信息未成功,在知乎提问后,得到解决,有大佬说带上全部headers和cookie是可以的,我就又去试了下,果然可以(之前自己试的时候不行,没 ...
- HTML教程-各窗口间相互操作(Frame Target)
由Frames分出来的几个窗口的内容并不是静止不变的,往往一个窗口的内容随着另一个窗口的要求而不断变化,这就提高了Frames的利用价值.为了完成各窗口之间的相互操作,我们必须为每一个窗口起一个名字, ...
- Cosh.3
查壳.没有 拖 OD 查找字符串 找到有用的东西 顺线往上看 找到 大概算入口处 下断 就从这里开始 单步下去吧 name的变幻 Serial的变幻 直接翻译出来了 继续看看 ...
- jenkins 使用oclint 扫描 oc 代码
jenkins 环境的搭建,在这里不在赘述,下面我们写一写,如何接入oclint. OCLint是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objecti ...
- CSS3的calc()使用
CSS3的calc()使用 calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度.比如说,你可以使用calc()给元素的border.margin.pad ...
- ios系统(苹果手机)按钮显示为圆角和渐变的问题
按钮在安卓手机上显示正常,但在苹果手机上会显示如下: 解决办法:给该按钮的样式加上:-webkit-appearance:none;这样按钮就会显示正常
- xmind的第十二天笔记
- Eclipse/IDEA使用小技巧
使用IDEA,先将keymap改为eclipse形式 1.搜索技巧: f4:列举所有类树状结构 Ctrl+F:搜索特定词 Ctrl+T:列举所有子类 Ctrl+O:快速检索想要的方法 Ctrl+Shi ...
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问
消息 15281,级别 16,状态 1,第 2 行SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/Open ...