私はピンチジェスチャーを処理し、スケール値を取得してupdateViewBounds
関数に渡すこのコードを持っています。UIPinchGestureRecognizerを使用したUIViewのサイズ変更
func pinchedOnView(gesture : UIPinchGestureRecognizer) {
switch gesture.state
{
case UIGestureRecognizerState.began:
self.resizableView.updateViewBounds(scale: gesture.scale , initialBounds: self.resizableView.bounds)
case UIGestureRecognizerState.changed :
self.resizableView.updateViewBounds(scale: gesture.scale, initialBounds: self.resizableView.bounds)
default :()
}
}
この関数は、入力スケールを取得して対応するフレームを見つけ、ビューフレームを更新します。
public func updateViewBounds(scale : CGFloat,initialBounds : CGRect) {
let zt = CGAffineTransform(scaleX: scale, y: scale)
let tempBounds = initialBounds.applying(zt)
if tempBounds.width < UIScreen.main.bounds.width - 20 && tempBounds.height < UIScreen.main.bounds.height - 20 {
if tempBounds.height > 300 || tempBounds.width > 300 {
self.bounds = tempBounds
}
else {
}
}
}
この機能は正常に動作しますが、非常に高速です。はい、私たちは、UIPinchGestureRecognizer
が値の各部分を返すことを知っています。
私はユーザーに非常に適切なビューのサイズ変更を見せたいと思っています。私は価値のすべての部分についてビューを更新したくありません。何かご意見は?
'' .end'を 'gesture.state'で試してみましたか? –