我有以下情况:我有一个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);
}
这可以“正常”,画布和滚动视图都会增加,现在允许平移,但旧图像显示在左上角,我需要将其居中。知道怎么样?
答案 0 :(得分:1)
最终对我有用的是重构我的架构,我有我需要的变量。但我最终设置的属性是scrollView.contentOffset
,仅供将来参考:)
答案 1 :(得分:0)
你可以做的是,将所有内容放入UIView并将UIView添加到UIScrollView。您需要确保UIView.center等于UIScrollView.center。 此外,您还需要调整UIView帧大小以及UIScrollView大小。