0

メインのUIScrollView要素のサブビューとしてUIImageView要素があります。画像を常に画面全体に表示したいのですが、端を少しドラッグしすぎて、黄色の「背景」が表示されるようにすることができます。指を離すと、画像が「跳ね返り」、画面全体に正しく表示されます。

この画像の画面外へのドラッグを防ぎたいです。ただし、画像を「安全領域」からドラッグすると、画像が跳ね返ってくるようにします。

これは私のScrollViewの初期化です:

- (id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:CGRectMake(0, 0, frame.size.height, frame.size.width)];
if (self) {
    [self initImageValues];

    self.showsVerticalScrollIndicator = NO;
    self.showsHorizontalScrollIndicator = NO;
    self.bouncesZoom = YES;
    self.decelerationRate = UIScrollViewDecelerationRateFast;
    self.delegate = self;
    self.backgroundColor = [UIColor yellowColor];
    self.minimumZoomScale = 1.0;
    self.maximumZoomScale = 2.0;
    [self setCanCancelContentTouches:YES];
    self.clipsToBounds = YES;

    // Load Image
    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]];
    [self addSubview:imageView];

    [self setContentSize: CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];

    // Set bigger "bounce" zone (safety area)
    self.contentInset=UIEdgeInsetsMake(-SAFETY_ZONE,-SAFETY_ZONE,-SAFETY_ZONE,-SAFETY_ZONE);

    self.scrollEnabled = YES;

}
return self;}
4

4 に答える 4

2

次のデリゲートメソッドを使用します。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

次に、オフセットを読み取り、「安全領域」外にある場合は戻ります。

UIScrollViewから別のデリゲートメソッドが必要な場合もありますが、このような回避策で問題が解決するはずです:)

于 2012-05-25T12:33:42.523 に答える
0

これを試して: **

self.scrollView.maximumZoomScale = 1.0;
self.scrollView.minimumZoomScale = 1.0;

**

于 2012-05-25T12:08:39.473 に答える
0

bouncesそのプロパティをに設定してみてくださいNO

于 2012-05-25T12:04:15.743 に答える
0

スクロールビューでバウンスを設定してみてください。

self.bounces = NO;
于 2012-05-25T12:05:27.727 に答える