基本上,我的视图层次如下:
UIWindow (level 1)
|--UIScrollView (level 2)
|--single UIView (level 3)
|-- Multiple subviews (level 4)当用户按下第4级的一个子视图时,应用程序将
我试着在捏手势处理过程中添加下面的代码来放大UIView,它没有工作,它只是放大了UIView帧,但是第4级的子视图根本没有缩放。
我添加3级UIView的原因是,当我缩放3级UIView时,我希望所有的4级子视图都能自动缩放,所以我不需要逐个缩放这些子视图。现在我很困惑,这能行吗?还是需要手动逐个缩放所有4级的子视图?
- (IBAction)handlePinchTap:(UIPinchGestureRecognizer *)gestureRecognizer {
NSLog(@"handle tap");
CGRect oldFrame = self.levelThreeUIView.frame;
[UIView animateWithDuration:1.0 animations:^{
self.levelThreeUIView.frame = CGRectMake(0, 0, oldFrame.size.width, 748);
}];
}发布于 2011-11-19 08:41:01
解决这一问题的一种方法是设置每个子视图的autoResizing属性。如果父视图大小发生变化,这基本上会调整子视图的大小。设置此属性的最简单方法是转到Interface &选择您的视图并执行以下操作-

您可以正确地看到Autosizing框,对于每个子视图,请选择所有四个&内部自动调整大小选项。在右边,例如,Xcode向您展示了如何根据设置调整视图的大小。
发布于 2012-04-03 12:48:46
有点晚了..。但万一其他人被绊倒了.
您不需要调整第三级视图的大小。相反,您必须将UIScrollView的contentSize设置为第三级视图的大小,
self.scrollView.contentSize = self.levelThreeUIView.frame.size;将滚动视图的委托设置为控制器
self.scrollView.delegate = self然后放
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return self.levelThreeUIView;
}当用户按下时,内容将自动缩放。
请注意,每个子视图的帧没有变化,只是显示它们的比例。
https://stackoverflow.com/questions/8192813
复制相似问题