日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS开发之--UIScrollView pagingEnabled自定义翻页宽度

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(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自定义翻页宽度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。