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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Q&A

解決済

1回答

1351閲覧

UITableViewについて

n_koji

総合スコア7

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

0グッド

0クリップ

投稿2017/07/10 05:54

初めて質問をさせていただきます。

###前提・実現したいこと
UITableViewを使用して、ラベル+スイッチが表示されているリストを作っています。
ラベルを左詰め、スイッチを右詰めにして表示をさせたいです。

###発生している問題
文字列が多くなると、スイッチがviewの中に収まり切らず、見切れてしまっています。

###試したこと
ストーリーボードのAutolayoutを使用しています。スイッチは親Viewに対してのconstraintsで右と上に対して、スペースができるように設定しています。またラベルに関しては上と左に関しては親ビューに対してスペースを、右に関してはスイッチに対してスペースを設定するようにしています。

###補足情報(言語/FW/ツール等のバージョンなど)
Xcode8.3.3

まだ開発経験が浅くご迷惑をおかけしますが、どなたかご教授いただけますと助かります。

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

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

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

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

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

umeruma

2017/07/10 11:31

ラベル、スイッチ共に幅は可変なのでしょうか?スイッチは固定幅だったりしますか?
n_koji

2017/07/10 11:36

ラベル、スイッチ共にサイズは指定しておらず、可変サイズとしております。
guest

回答1

0

ベストアンサー

ラベル側の Content Compression Resistance Priority の Horizontalの値をスイッチよりも小さくすれば正しく表示されると思います。

Content Compression Resistance Priority についてはこちらを参照
Auto Layout 固有サイズに関するメモ - Qiita

具体的にはここの値を変更
ここ

手元で試してみました。

修正前

修正前

左のラベルは、
上と左のマージンを 親ビュー(TableViewCell の ContentView)に対して
右のマージンをスイッチに対して

ボタンは
上と右のマージンを 親ビュー(TableViewCell の ContentView)に対して

つけるとこんな感じになりました。

(一番上が正しく表示されている原因はよくわかりませんが、)
この状態だとラベル、スイッチの水平サイズ決定の優先度がどちらも同じ状態になっているために、制約がうまく決定できずレイアウトが意図通りになりません。

修正後

修正後

追記

おそらく、ビルドする際にエラーがXcode上に表示されていたと思います。
(今回の件も、そのエラー文言を読むことで対応できたと思われます)
エラー、警告の指示通りにすれば、クリックのみで解決できることもあるので、見るようにすると良いです
参考 「Auto Layoutガイド/ 不能なレイアウト」

ちなみに、ラベル、スイッチいずれかの幅に制約をつければもう片方の幅は決定するので、
サイズが変わらないであろうスイッチにwidthの制約を追加でも対応できるはずですー

投稿2017/07/10 12:13

編集2017/07/11 11:57
umeruma

総合スコア139

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

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

n_koji

2017/07/11 09:17

同様の方法で試したところ、見切りが発生せずスイッチもきちんと表示されました。ベストアンサーとさせていただきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問