2016-03-19 11 views
0

私はそれにUIScrollViewのUIViewControllerを持っています。私は次のように私のアプリでの動作を持っていると思った:写真のときに、ユーザーの単一タップなぜios swiftアプリケーションでUIScrollViewのデフォルトズームを設定できないのですか?

1)利用者は、(UIScrollViewののデフォルトサイズ)

2)アプリを開き、通常のサイズで写真を見て、フルスクリーンになり、ユーザーはズームインして写真を移動することができます

3)ユーザーがフルスクリーンモードで再び写真をタップすると、ポイント1からズームして元のサイズに縮小し、動き回ることはできません。

私はこのプラグインと一緒に行くことにしました。スクロールして写真を動かすために:https://github.com/huynguyencong/ImageScrollView

@IBOutlet weak var requestPhoto: ImageScrollView! 

var originalPhotoSize :CGRect? 
var isPhotoOnFullScreen: Bool = false 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapHandler:") 

    self.requestPhoto.addGestureRecognizer(tapGestureRecognizer) 
    self.requestPhoto.userInteractionEnabled = true 

    originalPhotoSize = requestPhoto.frame 
} 


override func viewDidAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    requestPhoto.scrollEnabled = false 
    requestPhoto.pinchGestureRecognizer?.enabled = false 
    requestPhoto.panGestureRecognizer.enabled = false 
    requestPhoto.zoomScale = 1 
} 

func tapHandler(sender: UITapGestureRecognizer) { 

    if sender.state == .Ended { 
     if(isPhotoOnFullScreen == true){ 
      self.requestPhoto.frame = originalPhotoSize! 
      self.requestPhoto.zoomScale = 1 
      self.requestPhoto.pinchGestureRecognizer?.enabled = false 
      self.requestPhoto.scrollEnabled = false 
      isPhotoOnFullScreen = false 
     }else{ 
      self.requestPhoto.frame = self.view.frame 
      self.requestPhoto.pinchGestureRecognizer?.enabled = true 
      self.requestPhoto.scrollEnabled = true 
      isPhotoOnFullScreen = true 
     } 

} 
} 

そして、私の正確な問題は、次のとおりです:次のように

私のコードがある

1)ユーザーがアプリを開いたとき、彼は私が設定していても(小さな写真をズームするピンチすることができますrequestPhoto.pinchGestureRecognizer?.enabled = falseviewDidLoad

2)ユーザーが写真をタップすると、フルスクリーンで開きます。これは問題ありませんが、ズームしたり、ある時点で写真をタップすると小さなサイズに戻りますが、ズームレベルがデフォルトに設定されていません。

上記の2つの問題で私を助けてください?

==== EDIT

1 - ユーザーがアプリを開くと、ピンチで写真をズームすることができますが、フルスクリーンで画像を開いて通常モードに戻ると、ズームが無効になります。なぜそれは最初から無効になっていないのですか?

問題については、 2 - 何とかこの行self.requestPhoto.zoomScale = 1は動作していません。self.requestPhoto.zoomScaleの値を1に設定した直後に表示されても、まだ別の値があります。このプラグイン(https://github.com/huynguyencong/ImageScrollView)の不具合か、間違っていますか?

答えて

0

ネイティブUIScrollViewを使用すると、成果を達成できます。サードパーティのSDKを使用する必要はありません。

あなたはネイティブScrollViewDelegateを使用してアプリケーションを構築することを選択した場合、あなたは設定されたズームレベルのため、このscrollViewデリゲートメソッドを使用することができます。

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { 
     scrollView.minimumZoomScale = 1 
     scrollView.minimumZoomScale = 10 
     return self.imageView // Your Image View. 
    } 
+0

ありがとうございます!しかし、今のところ私はサードパーティ製のsdkにとどまり、バグを修正しようとしましたが、それがうまくいかない場合、私はあなたのソリューションを使用しようとします!あなたはおそらく私の問題の理由かもしれないことを知っていますか? – randomuser1