首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UIScrollView中同时缩放子视图?

如何在UIScrollView中同时缩放子视图?
EN

Stack Overflow用户
提问于 2011-11-19 08:20:38
回答 2查看 1.7K关注 0票数 1

基本上,我的视图层次如下:

代码语言:javascript
复制
UIWindow (level 1)
   |--UIScrollView (level 2)
           |--single UIView (level 3)
                |-- Multiple subviews (level 4)

当用户按下第4级的一个子视图时,应用程序将

  1. 将4级的所有子视图缩放到(1024,748)大小,即完全填充整个iPad屏幕,我的应用程序总是在景观模式下工作。
  2. 显示用户按下的子视图(第4级)作为当前内容。

我试着在捏手势处理过程中添加下面的代码来放大UIView,它没有工作,它只是放大了UIView帧,但是第4级的子视图根本没有缩放。

我添加3级UIView的原因是,当我缩放3级UIView时,我希望所有的4级子视图都能自动缩放,所以我不需要逐个缩放这些子视图。现在我很困惑,这能行吗?还是需要手动逐个缩放所有4级的子视图?

代码语言:javascript
复制
- (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);


}];
}
EN

回答 2

Stack Overflow用户

发布于 2011-11-19 08:41:01

解决这一问题的一种方法是设置每个子视图的autoResizing属性。如果父视图大小发生变化,这基本上会调整子视图的大小。设置此属性的最简单方法是转到Interface &选择您的视图并执行以下操作-

您可以正确地看到Autosizing框,对于每个子视图,请选择所有四个&内部自动调整大小选项。在右边,例如,Xcode向您展示了如何根据设置调整视图的大小。

票数 1
EN

Stack Overflow用户

发布于 2012-04-03 12:48:46

有点晚了..。但万一其他人被绊倒了.

您不需要调整第三级视图的大小。相反,您必须将UIScrollView的contentSize设置为第三级视图的大小,

代码语言:javascript
复制
self.scrollView.contentSize = self.levelThreeUIView.frame.size;

将滚动视图的委托设置为控制器

代码语言:javascript
复制
self.scrollView.delegate = self

然后放

代码语言:javascript
复制
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return self.levelThreeUIView;
}

当用户按下时,内容将自动缩放。

请注意,每个子视图的帧没有变化,只是显示它们的比例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8192813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档