我不知道如果我誤解你的要求 - 但是這可能是一個起點,看你怎麼可以設置它:
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect viewBounds = self.view.bounds;
CGRect scrollViewFrame = CGRectMake(0, 0, floorf(CGRectGetWidth(viewBounds)/2.2), CGRectGetHeight(viewBounds));
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
scrollView.center = self.view.center;
scrollView.contentSize = CGSizeMake(CGRectGetWidth(viewBounds) * 3, CGRectGetHeight(viewBounds) * 3);
scrollView.pagingEnabled = YES;
scrollView.clipsToBounds = NO;
UIPanGestureRecognizer *gestureRecognizer = scrollView.panGestureRecognizer;
[self.view addGestureRecognizer:gestureRecognizer];
for (int i = 0; i < 3; i++) {
CGRect frame = CGRectMake(10.f + (i * CGRectGetWidth(scrollView.bounds)), 10.f, CGRectGetWidth(scrollView.bounds) - 20.f, (CGRectGetHeight(scrollViewFrame) * 3) - 20.f);
UIView *view = [[UIView alloc] initWithFrame:frame];
view.backgroundColor = [UIColor redColor];
[scrollView addSubview:view];
}
[self.view addSubview:scrollView];
}
字面上只是把這個在一個空的viewController的viewDidLoad:
要注意的關鍵事情是
contentSize
需要是足夠寬,所有的面板
clipsToBounds
應該是NO
,所以你可以看到更多的景色
- 滾動視圖的邊界基本上是
pagingEnabled
應設置
- 我一把抓起滾動型的
panGestureRecognizer
,並連接到主視口包含視圖,以便在包含視圖的邊界中檢測平移(較大),否則您僅限於在滾動視圖邊界內檢測卷軸
contentSize方法似乎是正確的方法。唯一的是你需要在用戶從一個子視圖移動到另一個子視圖之後動態修改它。那種方法怎麼樣? – Kent
這是我沒有嘗試過的最後一件事。從看*咳嗽*新的iOS *咳嗽* iTunes的滾動看起來非常順利。足夠流暢,看起來他們沒有更新任何東西,而滾動或之後。 – random