在UIScrollView上布局子视图的最佳方法是什么?

时间:2014-07-18 07:03:09

标签: ios iphone objective-c uiscrollview

有没有一种很好的方法将视图从笔尖布局到UIScrollView? Android使用LinearLayout因此它会自动执行此操作,但是在iOS中有类似的方法吗?我希望它们水平居中在scrollview上,但它们应该叠加在一起。使用

[myScrollView addSubview:aView];显然只是把它们放在彼此之上。

1 个答案:

答案 0 :(得分:0)

我不使用任何界面构建器。我添加了子视图并使用CGRectZero初始化它们。我使用layoutSubviews设置子视图'框架和scrollView' contentSize。我从来没有遇到任何问题。因此,我建议您使用layoutSubviewssetNeedsLayoutviewWillLayoutSubviewswillRotateToInterfaceOrientation方法。

我不知道你想在哪里改变scrollView帧。如果scrollView是您的自定义视图,请在layoutSubviews

中尝试此操作
CGRect newFrame = self.viewToBeCentered.frame;
newFrame.origin.x = (self.frame.size.width - self.viewToBeCentered.frame.size.width)/2;
self.viewToBeCentered.frame = newFrame;

如果您的scrollView是viewController.view的子视图,请在viewWillLayoutSubviews中尝试:

CGRect newFrame = self.viewToBeCentered.frame;
newFrame.origin.x = (self.scrollView.frame.size.width - self.viewToBeCentered.frame.size.width)/2;
self.viewToBeCentered.frame = newFrame;