UIScrollView不会缩放

时间:2013-01-09 00:11:58

标签: iphone objective-c uiscrollview ios6

我有一个子类UIView我可以滚动但不能缩放。我正在使用自动布局,所以想知道IOS6中是否有任何改变。特别是何时实施scrollViewWillBeginZoomingscrollViewDidEndZooming方法。我的代码看起来像

- (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;

因为如果视图被定义为弱视图,则不会出现。

1 个答案:

答案 0 :(得分:0)

为此道歉。答案真的很愚蠢。我目前正在IOS 6.0下在模拟器上进行开发,而我的手机仍在IOS 5上。模拟器允许您模拟捏,但仅以屏幕中心为中心。但是滚动视图只接收到这个信号,如果它也在中心,而在我的初始构建中不是这种情况。将滚动视图的矩形移动到中心可以解决问题。你不会在真实设备上测试这个错误。因此代码没问题。失去了3或4个晚上,把头发拉过这个。