我在ViewController
的ScrollView
、SuperView
的视图中有很多"按钮"。
ViewController
View
ScrollView
View
Button
Button
Button
Button
Button
....
我使用autolayout
,视图到ScrollView
(尾部,顶部,底部,引线0,对齐x,y中心)对于CCD_ 6至CCD_。
当旋转到横向模式时,屏幕只识别x 0到320之间的触摸,x320之后的任何按钮都是不可触摸的。
我确实更改了SuperView
、ScrollView
和内容视图的框架,但没有做任何
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
_contentView.frame = CGRectMake(0, 0, 1000,1000);
_mainView.frame = CGRectMake(0, 0, 1000,1000);
_scrollView.frame = CGRectMake(0, 0, 1000,1000);
NSLog(@"size of self is %@",NSStringFromCGSize(self.view.frame.size));
NSLog(@"size of scrollview is %@",NSStringFromCGSize(_scrollView.frame.size));
NSLog(@"size of contentView is %@",NSStringFromCGSize(_contentView.frame.size));
NSLog(@"size of MainView is %@",NSStringFromCGSize(_mainView.frame.size));
} else {
}
}
有人知道为什么吗?
谢谢。
正如马特建议的那样,我在旋转后更改帧(didRotateFromInterfaceOrientation
)。以下是视图的框架日志和一键不可触摸
2014-04-29 18:08:27.528 [84526:60b] size of self is {{0, 0}, {568, 288}}
2014-04-29 18:08:27.529 [84526:60b] size of scroolview is {{0, 0}, {568, 336}}
2014-04-29 18:08:27.529 [84526:60b] size of content is {568, 466}
2014-04-29 18:08:27.529 [84526:60b] size of contentView is {{0, 0}, {568, 466}}
2014-04-29 18:08:27.530 [84526:60b] size of MainView is {{0, 0}, {568, 288}}
2014-04-29 18:08:27.530 [84526:60b] size of myBtn is {{364, 45}, {50, 50}}
所以myBtn在contentView中,但它不可触摸?
旋转设备时是否收到任何约束警告?
我也有同样的问题,可以看到pickerview,但当我旋转设备时无法点击。回到以前的方向后再次工作。
在我的案例中,解决方案是删除所有约束(首先备份项目)并重置为建议的约束。
然后就成功了。
希望能有所帮助。
有趣的信息是:我会告诉你,这是在我将XCode从4.X更新到5.0之后开始发生的,所以,故事板中的某些内容可能没有正确升级。