私はUIViewのサブクラスを作成していますが、mファイル内からビューを拡大/縮小しようとしていますが、いくつかの問題が発生しています。コマンドを使用したとき: self.frame = CGRectMake(self.frame.origin.x-10,self.frame.origin.y-10,self.frame.size.width/2,self.frame.size.height/2);
オブジェクトは位置を移動しますが、サイズは変更されません(ビューにはいくつかのUIImageViewsのみが含まれています)。サブクラスのxibファイルには、サブビューをクリップし、サブビューを自動サイズ変更するオプションがありますが、どちらも起こらないようです。ビューがこのコマンドでサイズ変更されない理由と、サイズを変更する方法を知りたいサブクラス化されたUIViewのスケーリング
0
A
答えて
1
ビューのサイズ変更は、サイズ変更と同じではありません。あなたの考えを絵のフレームと考えてください。上でやっているのは、フレームを動かして右下を動かすことです(フレームの木の棒を短くしています)。しかし、それは自動的に画像を縮小しません。
サブビューを持つビューのサイズを変更する4つの方法があります。
- は(
view.clipsToBounds = YES
を設定することによって)そのサブビュースーパークリップをしてみましょう:サブビューは、サイズ変更や再レイアウトが、唯一の内側にある領域に表示されません。フレーム。 - スーパービューにサブビューをクリップさせません(
view.clipsToBounds = NO
を設定してください):スーパービューサイズを変更すると、サブビューに視覚効果はなく、フレーム外にも表示されます。 autoresizingMask
s:サブビューのサイズは変更されませんが、自動サイズ変更マスクに従って再レイアウトされます(たとえば、サブビューは常にフレームの右下隅から10ピクセル離れた位置にあるか、常に正確にフレームの幅)。これは必ずしもサブビューの内容を自動的に拡大するとは限りません。それに応じてsubview.contentMode
を設定します。- スーパービューをスケールする:
superview.transform = CGAffineTransformScale(superview.transform, 0.5, 0.5)
を設定すると、スーパービューとそのすべてのサブビュー(本質的にはズームアウト)が縮小されます。これにより、superview.frameが未定義になります。これは、これをもう使用しないことを意味します。また、少しぼやけさせることもできます。
また、すべてのサブビューを「手動で」変更することもできますが、そのような種類のビューを使用すると、見栄えの良いビュー階層を作成することができなくなります。
MishieMooによると、一時的にスーパービューのbackgroundColor
を見えるように設定しました。これは、あなたの意見が実際に変化していることを示す可能性が非常に高いでしょう。
関連する問題
- 1. サブクラス化されたQAbstractTableModelモデルの更新とサブクラス化されたQTableViewのリフレッシュ
- 2. UIviewの問題をサブクラス化する
- 3. CAShapeLayerをマスクにしたUIViewのサブクラスが正しくアニメーション化されない
- 4. アニメーション中のUIViewスケーリング
- 5. nibファイルで作成されたUIViewをサブクラス化してオーバーライドする
- 6. UIViewからスケーリングされたUIImageを作成する
- 7. swift UIViewサブクラスと、渡された値からの任意のサブビュー
- 8. touches UIViewのサブクラスの代わりにAppDelegateで捕捉された
- 9. Quartzに描画するためのUIViewのサブクラス化
- 10. UIViewサブクラスでdrawRectで描画されたコンポーネントのテキストを更新
- 11. Django:サブクラス化されたオブジェクトのm2m
- 12. UIViewサブクラス、タッチイベント
- 13. VB.NETサブクラス化されたアイテムのリストコレクションを含むクラスのサブクラス
- 14. カスタムビュー - UIViewのサブクラスが
- 15. UIViewブレーク制約のスケーリング
- 16. DictionaryBaseとサブクラス化されたオブジェクトメソッド
- 17. 他のUIViewを含むUIViewサブクラス
- 18. スケーリングサブビューをスケーリングしないUIView
- 19. UIViewサブクラスのアクセスViewControllerメソッドswift
- 20. UIViewのサブクラス化の正当な根拠は何ですか?
- 21. スケーリングされた親のスケーリングされていないコントロール
- 22. UIViewのサブクラスにUILabelsが表示されない
- 23. UIButtonをサブクラス化されたUIViewに配置する際の問題はありますか?
- 24. サブクラス化されたノードで衝突が検出されない
- 25. サブクラス化されたUIViewControllerが表示されない
- 26. tkinter:初期化パラメータをサブクラス化されたカスタムウィジェットに渡すか?
- 27. UIViewの高さがデバイス間の画像で正しくスケーリングされない
- 28. ステレオキャリブレーションされたスケーリングされた画像?
- 29. サブクラスのメソッドをサブクラス化された引数でオーバーライドしますか?
- 30. のUIViewをスケーリングする回転
フレームをリセットした後、ビューのサイズが変わらないのですか?あなたは100%肯定的ですか?それを画面上で見ることができるように、背景色を変更してみてください。またはあなたのサブビューはサイズを変えたり移動したりすることになっていますか? – MishieMoo
サブビューに 'autoresizingMask'がありますか?フレームを変更するのではなく、 'transform'を使ってUIViewを拡大縮小したいのですか? – Cyrille