更改子视图的帧没有效果?

时间:2013-05-22 14:46:17

标签: ios

我的视图右侧有一个子视图,这只是横向模式下的可见/屏幕(很像Facebook的聊天视图)。请注意,自动布局已关闭。

我想让用户通过向左滑动以纵向模式显示此视图。

enter image description here

以下是“界面”构建器中设置的视图的自动调整遮罩:

enter image description here

红色视图仍然可见,但在红色视图的右侧和屏幕外。

更改框架无效,除非在返回横向模式后,即使转到纵向模式,视图也会保持其位置。我猜它是因为它是调整大小的掩码,但将其设置为无也没有帮助。

-(void)handlePanGesture:(UIPanGestureRecognizer*)pan
{    
  [self.rightSideView setFrame:CGRectMake(100, 0, 
                                          self.rightSideView.frame.size.width,
                                          self.rightSideView.frame.size.height)];
}

2 个答案:

答案 0 :(得分:0)

试试这个:

dispatch_async(dispatch_get_main_queue(), ^{
                 [self.rightSideView setFrame:CGRectMake(100, 0, 
                                          self.rightSideView.frame.size.width,
                                          self.rightSideView.frame.size.height)];
            });

答案 1 :(得分:0)

视图的宽度从空间中的256像素更改为纵向中的0。取消灵活宽度解决了问题