2013-02-20 87 views
2

我試圖設置一個顯示圖像的簡單視圖,並允許用戶放大/縮小圖像並按需要平移圖像。 我啓用了autoLayout,並且該視圖由一個嵌入了UIImageView的UIScrollView組成。 這兩個視圖的大小均適合整個屏幕。iOS 6 Autolayout - 帶嵌入式ImageView的ScrollView無法正常縮放

我使用了Apple的ScrollViewSuite(「1_TapToZoom」示例)的邏輯和代碼,看起來一切正常。但是,捏視圖時,ScrollView/ImageView將全部失真並且不能正確響應。很難解釋這種行爲,但讓我們稱之爲「時髦」。大小和方面以不一致的方式變化。

我的GUESS是這與自動佈局約束有關。 有沒有人有這方面的建議/修復?

回答

0

發生的問題是在縮放過程中更改imageview的位置。在縮放過程中,imageview的原始位置將變爲負值。我相信這就是生澀運動發生的原因。同樣,在縮放完成後,imageView仍然位於錯誤的位置,這意味着滾動看起來會被抵消。

如果您在此期間實施了-(void) scrollViewDidZoom:(UIScrollView *)scrollView並記錄了UIImageView的框架,則可以看到其原點更改。

我最終使事情通過實施這樣的策略制定:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/ch20p573scrollViewAutoLayout/ch20p573scrollViewAutoLayout/ViewController.m

而且除了改變內容查看的框架,而放大

-(void) scrollViewDidZoom:(UIScrollView *)scrollView { 
    CGRect cFrame = self.contentView.frame; 
    cFrame.origin = CGPointZero; 
    self.contentView.frame = cFrame; 
}