【发布时间】:2011-07-28 20:22:44
【问题描述】:
我有两个 UIScrollView 实例,我希望它们同时缩放。
有人有这方面的经验吗?
我正在使用NSNotificationCenter 告诉我的对象何时缩放。最初我以为我能以某种方式获得当前可见的矩形,然后打电话给zoomToRect:,但我没有办法做到这一点。我现在拥有的是设置 zoomScale 和 contentOffset 属性。它看起来像这样:
- (void)registerForZoomNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveZoomNotification:)
name:ZOOM_NOTIFICATION_IDENTIFIER
object:nil];
}
- (void)receiveZoomNotification:(NSNotification*)notification {
UIScrollView *currentScrollView = (UIScrollView*)[notification object];
// zoomLevel
[(UIScrollView*)self.view setZoomScale:currentScrollView.zoomScale animated:NO];
// contentOffset
[(UIScrollView*)self.view setContentOffset:currentScrollView.contentOffset animated:NO];
}
#pragma mark -
#pragma mark UIScrollViewDelegate
- (void)scrollViewDidZoom:(UIScrollView *)pageScrollView {
[[NSNotificationCenter defaultCenter] postNotificationName:ZOOM_NOTIFICATION_IDENTIFIER object:pageScrollView];
}
但它不起作用,而且看起来非常不稳定。任何人的想法?我应该采取不同的方法吗?
编辑:我应该澄清两个滚动视图不能同时显示。它们在完全同时滚动并不重要,只有滚动视图在滚动完成后与另一个滚动视图处于相同的缩放级别(和可见的矩形)。
【问题讨论】:
标签: iphone objective-c uiscrollview