我有一个子类UIView
我可以滚动但不能缩放。我正在使用自动布局,所以想知道IOS6中是否有任何改变。特别是何时实施scrollViewWillBeginZooming
和scrollViewDidEndZooming
方法。我的代码看起来像
- (void)viewDidLoad
{
[super viewDidLoad];
self.ringSet2 = [[RingView alloc] initWithFrame:CGRectMake(0, 0, 800, 800)];
[self.ringSet2 setDefaults];
/// ... more setup for other views but only ringSet2 is scrolled.
self.scrollview1.delegate=self;
self.scrollview1.scrollEnabled=YES;
self.scrollview1.contentSize=self.ringSet2.bounds.size
self.scrollview1.minimumZoomScale=0.2;
self.scrollview1.maximumZoomScale=5.0;
self.ringSet2.userInteractionEnabled=YES;
// ... needed elsewhere so other views can pick up their dimensionts
[self.view setNeedsLayout];
[self.view layoutIfNeeded];
/// ... code for additional views
[self.scrollview1 zoomToRect:CGRectMake(0, 0, 200, 200) animated:YES];
[self.scrollview1 addSubview:self.ringSet2];
}
带
-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return self.ringSet2;
}
和scrollViewWillBeginZooming
等仅用于追踪正在发生的事情。有趣,
viewForZoomingInScrollView
似乎只被调用一次,scrollViewDidEndZooming
的调用值只有一个,但scrollViewWillBeginZooming
永远不会被调用。属性ringSet2已定义
@property (strong, nonatomic) IBOutlet RingView *ringSet2;
因为如果视图被定义为弱视图,则不会出现。
答案 0 :(得分:0)
为此道歉。答案真的很愚蠢。我目前正在IOS 6.0下在模拟器上进行开发,而我的手机仍在IOS 5上。模拟器允许您模拟捏,但仅以屏幕中心为中心。但是滚动视图只接收到这个信号,如果它也在中心,而在我的初始构建中不是这种情况。将滚动视图的矩形移动到中心可以解决问题。你不会在真实设备上测试这个错误。因此代码没问题。失去了3或4个晚上,把头发拉过这个。