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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

2回答

1760閲覧

if文の書き方について

acid

総合スコア20

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

1クリップ

投稿2017/03/02 07:44

編集2017/03/02 08:39

初歩的な質問で申し訳ないのですが。
iPhoneのディスプレイサイズに応じて処理を行いたいとき
このようなコーディングをしました。

if self.view.frame.width == 320 { stampView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)) stampView.image = stampImage } else if self.view.frame.width == 375 { stampView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)) stampView.image = stampImage } else if self.view.frame.width == 414 { stampView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)) stampView.image = stampImage } else { stampView = UIImageView(image: stampImage) }

次に、コードを短くしたいため
下記のコーディングをしました。

let screenSize = self.view.frame.width if (screenSize == 320) || (screenSize == 375) || (screenSize == 414) { stampView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)) stampView.image = stampImage } else { stampView = UIImageView(image: stampImage) }

次に
さらにコードを短くできるのではないかと思うのですが、
コードの書き方が分かりません。
下記のような書き方はできますでしょうか?

if self.view.frame.width == 320 または 375 または 414 のとき { stampView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)) stampView.image = stampImage } else { stampView = UIImageView(image: stampImage) }

また、if文を用いずに
別手段でコードを短くさせることが可能でしたら
ご教示いただけますでしょうか。
よろしくお願いいたします。

■追記
すみません、説明不足でした。
作成中のアプリの仕様上、autolayoutは用いていません。
よろしくお願いいたします。

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

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

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

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

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

t_obara

2017/03/02 07:53

autolayoutをご利用するのはいかがでしょうか?
acid

2017/03/02 08:35

アドバイス頂きありがとうございます。アプリの仕様上autolayoutは使用していません。質問文に追記させていただきます。
guest

回答2

0

ベストアンサー

switch

swift

1switch self.view.frame.width { 2case 320,375,414: 3 //含まれている 4default: 5 //含まれていない 6}

.contains

Zuishinさんの改造版。

swift

1if ([320, 375, 414].contains(self.view.frame.width)) { 2 //含まれている 3} else { 4 //含まれていない 5}

投稿2017/03/02 08:29

編集2017/03/02 08:48
fuzzball

総合スコア16731

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

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

acid

2017/03/02 10:12

とてもわかりやすく、コーディングしていただきありがとうございます。
guest

0

[320, 375, 414].indexOf(self.view.frame.width) != nil

投稿2017/03/02 07:59

Zuishin

総合スコア28660

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

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

acid

2017/03/02 10:07

アドバイスありがとうございます。配列を使用する点など参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問