0
私はこのUIImageViewをXcodeで作成し、画像を追加しました。その後、私はUIImageViewを変更しようとするために、このコードを追加したが、そのが動作していないInterface Builderを使用して作成されたUIImageViewの幅/高さをプログラム的に変更するにはどうすればよいですか?
:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var border: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let width = UIScreen.mainScreen().bounds.width
let height = UIScreen.mainScreen().bounds.height
border.frame.size.width = width
border.frame.size.height = height
}
うまくいきました。ありがとうございました。単なる好奇心から。私はviewWillAppear()を使用して、同じ結果を得ることができるかどうかを確認しようとしましたが、そうしませんでした。理由を知っていますか? – Suhaib
StoryboardからのビューがViewDidLoadとViewDidAppearに存在する間、ViewControllerがViewDidLayoutSubviewsを呼び出すまで、次元は実際にはレイアウトされません。たとえば、ViewDidLoad/ViewDidAppearでUILabel.textを変更することはできますが、ViewDidLayoutSubviewsまでStoryboardで設定されたUILabelディメンションを変更することはできません。これであなたの質問に答えることができない場合は、私に知らせてください。 – DevKyle
また、あなたが不思議に思っていた場合に備えて。ストーリーボードの寸法は、ViewDidLayoutSubviewsの後に呼び出されるため、ViewDidAppear()で変更することができます。唯一の問題は、新しいディメンションにフリックする古いディメンションが表示されることです。したがって、Storyboardディメンションを変更する適切な場所はViewDidLayoutSubviewsです。 – DevKyle