2011-03-15 102 views
3

我有一個UIImageView包含在UIScrollView。圖像(通常)很大,因此用戶可以縮小圖像以查看整個圖像。防止UIScrollView移動內容到左上

在縮小,不過,UIScrollView卡的ImageView到滾動視圖的左上角。我希望這可以由用戶定位,並且還沒有找到「關閉」的方法。

它總是允許滾動,而不是隻允許在圖像放大時滾動。也許它太重要了嗎?

任何人都知道一種方式?最初,我只是想手動創建這個功能。但UIImageViews不喜歡調整到新的尺寸(我已經嘗試了一切,不能讓UIImageView調整大小,除非我從imageView刪除圖片,更改框架,並重新添加它)。

回答

4

我最終禁用了UIScrollViewpanGestureRecognizer,並在自定義中禁用了底層。

下面是關於如何將其禁用快速片段:

// Disable our GestureRecognizer 
for (UIGestureRecognizer *gesture in scrollView.gestureRecognizers){ 
    if ([[NSString stringWithFormat:@"%@",[gesture class]] isEqualToString:@"UIScrollViewPanGestureRecognizer"]){ 
     [gesture setEnabled:NO]; 
     break; 
    } 
} 

一個黑客在職那裏一點,但它是由於這樣的事實,UIScrollViews已經改變了GestureRecognizer到的類「UIScrollViewPanGestureRecognizer。」如果你嘗試使用這個類,那麼編譯器會對你大叫(這裏可能有更好的解決方案)。

+1

'如果([gestureRecogniser isMemberOfClass:NSClassFromString(@ 「UIScrollViewPanGestureRecognizer」)])'' – Max 2012-05-24 23:19:06

+0

如果([gestureRecogniser isKindOfClass:NSClassFromString(@ 「UIScrollViewPanGestureRecognizer」)])' – nacho4d 2012-06-08 04:02:34

+0

上有'UIScrollView'一個'panGestureRecognizer'特性作爲避免這種黑客攻擊的iOS 5。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html#//apple_ref/occ/instp/UIScrollView/panGestureRecognizer – Robert 2013-11-07 15:32:27

1

如果您在UIScrollView的位置0,0處找到UIImageView,那麼這總是在左上方。如果您希望它在視圖中小於視圖中的中心位置,則需要將其放置在那裏。檢查其-size是否大於或小於滾動視圖。如果它小於滾動視圖,則將它的-center設置爲與滾動視圖相同。

+0

這完全適用保持的UIImageView在滾動視圖的中心,但如果你知道一種方法來保持的UIImageView在它拖動到的位置我在想,而不是回彈到中心? – Chewmieser 2011-03-15 20:50:59

0

檢查我的回答類似的問題here

+0

嗨坦尼婭,我也評論過你鏈接的答案。這個答案也是一樣的:你正在回答一個已經被正確回答的老問題。你能否在你的帖子中解釋爲什麼你的答案更好,或者在某些情況下比其他答案更可取? – 2017-05-29 14:39:51