我遇到一个问题,滚动视图在iPhone 5屏幕(320点宽)上的行为与预期相同,但当它的超视图自动调整以适合iPhone 6屏幕时,它将具有负水平contentOffset
( 375分宽)。偏移可能为负的原因是因为视图左侧还有contentInset
。但是因为在自动调整大小之前它是0,所以我希望它在之后仍为0。
我在UIScrollView
子类的initWithStyle:reuseIdentifier:
方法中设置UITableViewCell
,如下所示:
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.contentView.bounds];
scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
scrollView.contentSize = self.contentView.bounds.size;
scrollView.contentInset = UIEdgeInsetsMake(0, 100, 0, 0);
[self.contentView addSubview:scrollView];
此时我可以确认contentOffset
是(0,0)(大概是因为所有内容都会被自动调整以适应后来的iPhone 6屏幕)。我尝试用各种方法探测价值。在setFrame
它是(0,0)但在第一次调用layoutSubviews
时它是(-55,0) - 可能是因为iPhone 6和iPhone 5水平显示点之间的差异是375 - 320 = 55
以下是iPhone 6屏幕上发生的事情的屏幕截图(在此屏幕截图中,我在滚动视图中添加了其他视图,以便以图形方式显示):