swiftのコーディングに関する質問です。
タイトル通りですがself.view.addSubviewで追加したImageViewを最前面に固定するには、どのようにしたらよいでしょうか。
その後self.view.addSubviewで追加したImageViewが固定したImageViewの裏に入るようにしたいのです。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
self.viewの上に、透明view、最前面ImageView、の順にaddします。
そして、後から追加するImageViewは透明viewにaddするようにすれば優先を保つことが出来ます。
self.view | +-- 透明view | | | +-- ImageView1 | | | +-- ImageView2 | +-- 最前面ImageView
投稿2016/06/19 23:46
総合スコア16731
0
ベストアンサー
UIView
クラスのinsertSubview(view: UIView, belowSubview siblingSubview: UIView)
メソッドを使用するとTopImageViewの下に後で追加したViewが挿入されます。
※ 固定されるのでは無くその下に挿入されていく感じですね。
swift
1class ViewController: UIViewController { 2 3 var topImageView = UIImageView() 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 8 topImageView.frame = CGRect(x: 100, y: 100, width: 100, height: 100) 9 topImageView.image = UIImage(named: "ImageName") 10 topImageView.backgroundColor = UIColor.yellowColor() 11 view.addSubview(topImageView) 12 13 let color: [UIColor] = [.greenColor(), .redColor(), .blueColor(), .orangeColor(), .grayColor()] 14 15 for i in 0..<5 { 16 let imageV = UIImageView() 17 imageV.frame = CGRect(x: 30 * i, y: 30 * i, width: 200, height: 200) 18 imageV.backgroundColor = color[i] 19 view.insertSubview(imageV, belowSubview: topImageView) 20 } 21 } 22}
実行すると黄色いTopImageView
の下に追加されています。
もう一つの案としてはbringSubviewToFront(view: UIView)
メソッドを使用して指定したViewのTopに配置し直すというやり方です。
※全てのview
を乗せた後に呼び出すとTopに配置されます。
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 var topImageView = UIImageView() 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 topImageView.frame = CGRect(x: 100, y: 100, width: 100, height: 100) 11 topImageView.image = UIImage(named: "ImageName") 12 topImageView.backgroundColor = UIColor.yellowColor() 13 view.addSubview(topImageView) 14 15 let color: [UIColor] = [.greenColor(), .redColor(), .blueColor(), .orangeColor(), .grayColor()] 16 17 for i in 0..<5 { 18 let imageV = UIImageView() 19 imageV.frame = CGRect(x: 30 * i, y: 30 * i, width: 200, height: 200) 20 imageV.backgroundColor = color[i] 21 view.addSubview(imageV) 22 } 23 24 view.bringSubviewToFront(topImageView) 25 } 26}
投稿2016/06/18 02:36
編集2016/06/18 02:42総合スコア8490
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/18 04:35
2016/06/19 01:45
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/21 03:43