UIScrollView 禁止縮放

UIScrollView 禁止縮放,因為UIScrollView 沒有禁止縮放的屬性,這邊整理一下大概的幾種方法

1、檢查設(shè)置minimumZoomScalemaximumZoomScale;根據(jù)the docs

maximumZoomScale must be greater than minimumZoomScale for zooming to be enabled

因此,將值設(shè)置為相同應(yīng)禁用縮放

-(void)lockZoom
{
    maximumZoomScale = self.scrollView.maximumZoomScale;
    minimumZoomScale = self.scrollView.minimumZoomScale;
self.scrollView.maximumZoomScale = 1.0;
    self.scrollView.minimumZoomScale = 1.0;
}
-(void)unlockZoom
{
self.scrollView.maximumZoomScale = maximumZoomScale;
    self.scrollView.minimumZoomScale = minimumZoomScale;
}

2、您還可以在UIScrollViewDelegate中將“nil”作為縮放視圖返回:

- (UIView *) viewForZoomingInScrollView:(UIScrollView *) scrollView
{
    return canZoom?view:nil;
}

3、如果你只想禁用縮放手勢縮放,下面的代碼可以解決問題

scrollView.pinchGestureRecognizer?.requireGestureRecognizerToFail(scrollView.panGestureRecognizer)

4、如果要禁用用戶縮放手勢的功能,那么在iOS 5及更高版本中,您可以禁用捏合手勢。這仍然允許您從代碼控制滾動視圖...

scrollView.pinchGestureRecognizer.enabled = NO;

同樣適用

scrollView.panGestureRecognizer.enabled = NO;

必須在- (void)viewDidAppear:(BOOL)animated或更高版本中調(diào)用此方法,否則系統(tǒng)會將其重置為已啟用。
5、我知道這是一個非常古老的問題,但我的目的略有不同。 我希望能夠輕松判斷是否實際啟用/禁用了縮放,而不依賴于scrollView.minimumZoomScale == scrollView.maximumZoomScale之間的比較,這可能無法反映縮放是否實際啟用/禁用。 所以我這樣做了

// .h
@property (assign, nonatomic, getter=isZoomEnabled) BOOL zoomEnabled;
// .m
@synthesize zoomEnabled = _zoomEnabled;
- (void)setZoomEnabled:(BOOL)zoomEnabled;
{
  _zoomEnabled = zoomEnabled;
UIScrollView *scrollView = self.scrollView;
if (zoomEnabled) {
    scrollView.minimumZoomScale = self.minimumZoomScale;
    scrollView.maximumZoomScale = self.maximumZoomScale;
  } else {
    scrollView.minimumZoomScale = 0.0f;
    scrollView.maximumZoomScale = 0.0f;
  }
}

self.minimumZoomScale和self.maximumZoomScale的值在UIScrollView配置時設(shè)置。 這使我能夠設(shè)置/詢問是否啟用了縮放。

myViewController.zoomEnabled = YES;
myViewController.isZoomEnabled;

原貼地址:https://oomake.com/question/302778如有侵權(quán),請及時告知,會立即刪帖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容