我有一個UIScrollView根本不滾動。如果我啓用了彈跳功能,我可以向兩側滾動足夠多,以便看到視圖外有內容,但是當我釋放時,它會立即回到原點。我打開了分頁,但如果關閉它,我會得到相同的行爲。 我關閉了自動佈局。 在IB中,scrollView位於MainViewController中,正確連接到IBOutlet,如下所示。UIScrollView不滾動
@interface MainViewController()
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@end
@implementation MainViewController
- (void)viewDidLoad
{
[super viewDidLoad];
for (int i = 0; i < 3; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
// I might be doing this wrong, but it returns a PosterView object just like I want it to.
NSArray *view = [[NSBundle mainBundle] loadNibNamed:@"posterView" owner:self options:nil];
[[view objectAtIndex:0] setFrame:frame];
[self.scrollView addSubview:[view objectAtIndex:0]];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * 3, self.scrollView.frame.size.height);
}
如果我使用這種方法,但它正確滾動。
-(void)scrollToPage:(NSInteger)page{
float pageWidth = [self.scrollView frame].size.width;
[self.scrollView setContentOffset:CGPointMake(page*pageWidth,0) animated:YES];
}
我曾嘗試實施UIScrollViewDelegate
和壓倒一切的scrollViewDidScroll
,但它永遠不會被調用(除非我能彈跳,就像我剛纔提到的)。
contentSize.width是960,幀顯然是320,所以不應該是這個問題。滾動被設置爲在IB中啓用,嘗試在代碼中做,但沒有成功! –
你提供的代碼看起來很好。內容大小始終保持(3 * 320,480)?或者可能以某種方式重置 – Zen
你是對的,它在viewDidLoad之後重置!通過在第一次嘗試滾動時設置contentSize,它現在可以工作!謝謝。 –