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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

3回答

1815閲覧

widthやheightを固定値をしようせずに表記

Shawn5413

総合スコア8

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2016/07/06 00:49

編集2022/01/12 10:55

objective-Cを用いてゲームなどのアプリ開発を行っています
最初はwidthやheightなどを数字を用いて表していたのですが、デバイスによって高さや端などのサイズが異なるため、数字よりも文章でLayoutを表した方が配置のズレを減らせると考えました
ViewControllerやScrollViewなどで端や高さ・点、その他様々な配置を固定値を用いずに表したいので、そのためのcodeを教えてください!!

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

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

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

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

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

Mr_Roboto

2016/07/06 02:14

こんにちは、初めての質問ですね、よろしくお願い致します ^^ 「数字より文章でLayoutを表した方がいい」というのが斬新すぎて意味が理解できないのですが、もう少し具体的に書いてもらえますか? 何を見てそう思ったのかも書いて頂けると適切な回答が得られると思います。
Shawn5413

2016/07/06 15:05 編集

ケータイによって高さや幅が異なるため、数字で規定すると配置が異なるため、英文で書いた方がそれがなくなると考えたからです buttonやlavelなどの配置をViewControllerやScrollViewで固定値を使わずに表す方法を教えてください またlayoutを固定値を使わない表記か数値表記かどのように区別して値を決めてますか?
guest

回答3

0

英文でというのが、ちょっとやっぱりピンと来ませんが、
コンピュータさんは、人間の使う英文は理解できませんからね。

Objective-Cも英文のようにみえるような命令が多いですけどプログラミング言語です。
英文ではありません。なので英文では書けません。

で、説明を聞く限り様々なレイアウトで固定値を使いたくないということだと捉えました。

そういうのは、大抵の場合、レイアウトマネージャーと呼ばれるものを使います。
(環境によって呼び名が違う場合もあります)

Xcodeでは、Auto Layoutと呼ばれる仕組みがあるので、これを使いましょう。
画面の相対的な位置でレイアウトを決めてくれるので、
大きさが変わっても自動的にレイアウトするということをやってくれます。

もちろん固定の位置でも可能です。

ちょっと古いですが以下の記事を参考にしてみてください。
iOSで柔軟に対応可能なレイアウトを作成できるAuto Layout入門

そいういうことじゃないということであれば、質問への追記をお願いします ^^

投稿2016/07/06 14:34

Mr_Roboto

総合スコア2208

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

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

0

AutoLayoutを使えばいかがでしょうか? Storyboard上でのオブジェクトに制約をつける事でどのサイズのiPhoneにも対応します。

最初はwidthやheightなどを数字を用いて表していたのですが、デバイスによって高さや端などのサイズが異なるため、数字よりも文章でLayoutを表した方が配置のズレを減らせると考えました

その通りだと思います。
AutoLayoutのコードですが、こちらです。

① 複数のViewの制約を一度に定義できます
constraintsWithVisualFormat:options:metrics:views

何ピクセル隙間を開けて何を配置する という感じでプログラムできます。ただし、質問者さんの仰った、数字以外での解決はできないような気がします。

②constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:

こっちは、1つのものに対して制約をつけていきます。調べてみるといいかもしれません。
①は私も使った事がないのでよくわかりませんが、Qiitaの記事などを参考にして書いてみるといいかもしれません。

投稿2016/07/28 22:01

maplesugar_17

総合スコア32

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

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

0

雰囲気的にはこんな感じですかね。

objective

1CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width; 2CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height; 3 4// iPhone6の場合 5NSLog(@"screenWidth = %f",screenWidth); 6//=> screenWidth = 375.000000 7NSLog(@"screenHeight = %f",screenHeight); 8//=> screenHeight = 667.000000 9 10 11// ScrollViewのスクロール位置 12CGPoint scrollPoint = _scrollView.contentOffset; 13NSLog(@"scrollPoint.x = %f, scrollPoint.y = %f",scrollPoint.x, scrollPoint.y); 14//=> scrollPoint.x = 200.000000, scrollPoint.y = 0.000000 15 16 17// TableViewのスクロール位置 18CGPoint tablePoint = _tableView.contentOffset; 19 20// TableViewの幅 21CGFloat tableWidth = CGRectGetWidth(_tableView.frame); 22

投稿2016/07/06 04:05

編集2016/07/06 04:21
_Kentarou

総合スコア8490

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問