UIScrollView 增加并居中内容
Posted
技术标签:
【中文标题】UIScrollView 增加并居中内容【英文标题】:UIScrollView Increase and center content 【发布时间】:2013-11-26 04:08:23 【问题描述】:我有以下情况:我有一个UIViewController
,里面有一个UIScrollView
。此滚动视图的内容是一个“画布”,使用CoreGraphics
在其中绘制内容。此画布最终将显示的图像类似于树结构,所有这些都以编程方式完成。我的问题是:我希望能够增加画布大小,以便旧图像位于新分配的画布大小的中间,然后这个新的画布大小应该是滚动视图内容,以便绘制周围的东西在新分配的边界处并平移。
到目前为止,这是我所拥有的:
在画布类中:
if (totalWidthOccupiedByChildren > totalSpaceAvailableDad)
CGSize newSize = CGSizeMake(self.frame.size.width*1.1, self.frame.size.height*1.1);
self.frame = CGRectMake(0, 0, newSize.width, newSize.height);
[self.delegate shouldIncreaseScrollView];
在 ViewController 类中:
-(void)shouldIncreaseScrollView
self.scrollView.contentSize = CGSizeMake(paintV.frame.size.width, paintV.frame.size.height);
这“正常”,画布和滚动视图都增加了,现在允许平移,但旧图像显示在左上角,我需要将其居中。知道怎么做吗?
【问题讨论】:
【参考方案1】:最终对我有用的是稍微重构我的架构,这样我就有了我需要的变量。但我最终设置的属性是scrollView.contentOffset
,仅供参考:)
【讨论】:
【参考方案2】:你可以做的是,把所有的东西放在一个 UIView 中,然后将该 UIView 添加到 UIScrollView。您需要确保 UIView.center 等于 UIScrollView.center。 此外,您需要调整 UIView 框架大小以及 UIScrollView 大小。
【讨论】:
我设法实现了视图复制,但即便如此scrollView.center = canvasView.center
也没有用,对不起!
canvasView 的对齐方式是什么?那应该是中心。
如何对齐 canvasView 正是我的问题.. 但我设法通过设置 contentOffset 来做到这一点以上是关于UIScrollView 增加并居中内容的主要内容,如果未能解决你的问题,请参考以下文章