質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

375閲覧

コードで作成したButtonはAutoresizingを使用できないのでしょうか?

mokoporon

総合スコア26

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

0クリップ

投稿2018/02/17 06:24

インターネット上で情報を得られるかと思っていたのですが、思っていた情報を得られなかったため質問させていただきます。

SwiftではShow the Size inspectorから、直感的操作でViewに配置されているオブジェクトを選び、Autoresizingを設定することで、iphone8/8plus/X等異なる大きさでも違和感がなくズレのない画面が表示できるため、シンプルなアプリを作成する際に重宝しています。

しかし、これがコードで作成したButton等の場合、どのようにAutoresizingを設定すればよいのかわかりません。何かAutoresizingに該当するコードがあるのかと考えていますが、実際にどういう書き方になるのかは分からない。という状況です。

例えば、以下のようなコードのButtonを設定し、画面の大きさが異なる場合でも、ズレることなく表示をさせるにはどうすればよろしいのでしょうか。ぜひご教授のほどよろしくお願いいたします。

Swift

1import UIKit 2 3class ViewController : UIViewController { 4 5let button = UIButton() 6@IBOutlet weak var label: UILabel! 7 8override func viewDidLoad() { 9 super.viewDidLoad() 10 11 button.backgroundColor = UIColor.blue 12 13 button.frame = CGRect(x:100,y:150,width:50,height:50) 14 15 button.addTarget(self,action: #selector(ViewController.buttonAction(sender: )), for: .touchDown) 16 17 view.addSubview(button) 18 } 19 20 @objc func buttonAction (sender: Any) { 21 self.label.text = "コードによるButtonの動作確認" 22 23 //@objc func内に何かコードを付せばよいのではないかと考えています。 24 }
tis👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ios autoresizing コードでググって一番上に出てきた記事です。

StoryboardのAutosizingをコードから行う例

投稿2018/02/19 01:02

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokoporon

2018/02/25 08:17

ご回答ありがとうございます。お返事が遅れまして申し訳ありません。 提示していただいたサイトを参考に、自分なりにもう少し調べていきました。 Swift4に対応している書き方にし、viewDidLoad内に subview.autoresizingMask = [.flexibleTopMargin, .flexibleBottomMargin, .flexibleLeftMargin, .flexibleRightMargin, .flexibleWidth, .flexibleHeight] という記載を行いました。 コンパイルエラーは出ませんが、画面に反映されている様子はありませんでした。(CGRectのx座標を250程度に設定すると、iPhone8plusでは中央やや右あたりに表示されるのに対し、iPhoneSEでは画面右に見切れます。 もう少し、自分で調べてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問