0
をリサイズすることができない私はImageViewのを有し、かつ上にUIViewのサブクラスです落書きビューをしようとしていますそれは単純なことでなければなりませんが、私は手掛かりを見つけることができなかった、カスタムビュー - UIViewのサブクラスが
落書きを許すように落書きの表示のサイズを変更する以外はすべて正常に動作しますが、画面全体を常に占めていますが、それを小さくすることはできませんでした。
class ScribbleView: UIView
{
let backgroundLayer1 = CAShapeLayer()
required init()
{
// super.init(frame: CGRect.zero)
super.init(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
layer.addSublayer(backgroundLayer1)
layer.masksToBounds = true
}
class HermiteScribbleView: ScribbleView, Scribblable
{
required init() {
print ("calling parent")
super.init()
}
}
/**メインコード**/
let hermiteScribbleView = HermiteScribbleView()
hermiteScribbleView.backgroundColor = .red
// imgView.autoresizesSubviews = true
// hermiteScribbleView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
//once this is done, hermieScribbleView is always stretched to full width and height no matter what I try
imgView.addSubview(hermiteScribbleView)
imgViewとhermiteScribbleViewの両方のフレームを記録すると、 'addSubview()'の直後にどのような結果が得られますか? –
(1)自動レイアウトを使用していない、(2)重要な可能性のある特定のビュー/レイヤーでフレームを設定するなど、いくつかのコードを取り除いたとします。私も完全なビュー階層を把握することができないので、これは基本ではないかもしれません。しかし、あなたのScribbleView、UIViewは、UIImageViewのサブビューです(あなたの説明が言うようです)...なぜかすべてをカスタムUIImageViewにしてからlayoutSubviewsでフレームを同じにするのはなぜですか?必要に応じて空想的なものを一度設定することもできます。 – dfd
私はviewdidload()の後プロパティを宣言していない間ScribbleViewを初期化しなければなりませんでしたが、他のメソッドでアクセスするにはプロパティとして必要ですが、頭を上げていただきありがとうございます。 –