2016-04-22 15 views
0

次のように私は、UIImageViewUILabelが含まれているコンテナUIViewを持っている:サブビューを非「変換可能」に設定していますか?

let containerView = UIView() 
containerView.clipToBounds = true 

let imageView = UIImageView(frame: containerView.bounds) 
imageView.image = UIImage(named: "Some Image") 
containerView.addSubview(imageView) 

let labelView = UILabel(frame: containerView.bounds) 
labelView.text = "Some Label" 
containerView.addSubview(label) 

私は今containerViewのx軸を伸ばすが、形質転換されていないラベルを保つ、すなわちちょうどcontainerViewを伸ばすとしたいですimageView。私は現時点では:

containerView.transform = CGAffineTransformMakeScale(2, 1) 

しかし、これはまた、labelを伸ばしています。ラベルを「変換不可能」にするためのソリューション?

答えて

1

ラベルをコンテナの外に移動できます。あなたの提案のための

label.transform = CGAffineTransformInvert(containerView.transform) 
+0

ありがとう:それとも、これは少しハックでは、ラベルにコンテナ変換のを与えることを試みることができます。ハックは機能しますが、アニメーションに含めるときは機能しません。奇妙なズームイン/アウトダンスです。コンテナからラベルを削除し、その位置に戻すためにラベルを追加するにはどうすればよいですか?私は 'labelView.removeFromSuperview()'と 'view.addSubview(labelView)'を試しましたが、ビューを元に戻しますが、変換はまだそれに適用されます... – Alex

+1

あなたはコンテナのコンテナを見つける必要があります。そこにビューを追加してください( 'container.superview.addSubview(labelView)')。自動レイアウトを使用している場合は、他の含まれている要素の兄弟ではないという事実を処理するために制約を更新する必要があります(これは難しいかもしれません)。手作業でレイアウトを計算している場合は、それが正しくなるまで手作業で行うことができます。 –

1

はい、変換をcontainerViewに適用すると、すべてのサブビューも変換されます(labelViewおよびimageView)。

コンテナビューの外にラベルを追加して、変形されないようにしてください。

関連する問題