使用Interface Builder,我创建了一个包含UIScrollView的视图。
我以编程方式将按钮添加到空的UIScrollView。
当方向改变时,我使用
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
调用重置屏幕上按钮的方法。
之后, uiScrollView -content使用 setContentSize 获得新尺寸。
无论 ContentSize 的宽度如何,我只能在屏幕的第一个320px上进行交互(滚动/或点击按钮) - 这是纵向模式下的屏幕宽度。
当我将 contentSize-width 设置为2000时,我可以向左滚动,但只能用我的手指在前320 px而不是全部480(使用3.5英寸iPhone)。
我错过了什么?
答案 0 :(得分:0)
您需要调整scrollview框架的大小,而不仅仅是内容大小(事实上,通常您不需要调整内容大小,因为内容在更改方向后可能不会更改,但只是框架。)
答案 1 :(得分:0)
我从(UIViewController)调用的Popup(UIView)遇到了同样的问题。
在UIViewController中,弹出窗口按照
创建func createPopup() {
let myPopup = MyPopup(frame: UIScreen.mainScreen().bounds)
self.view.addSubview(myPopup)
}
在Popup(UIView)中,我需要覆盖layoutSubviews,如下所示:
override func layoutSubviews() {
super.layoutSubviews()
self.setNeedsDisplay()
let mainScreenBounds = UIScreen.mainScreen().bounds
view.frame = mainScreenBounds
super.frame = mainScreenBounds <-- Need to update the parent
** perform additional rotation/orientation code here **
}