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

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

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

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Swift

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

Swift 2

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

Q&A

解決済

2回答

5872閲覧

swift labelの自動高さ調節

atsupoooon

総合スコア47

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Swift

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

Swift 2

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

0グッド

0クリップ

投稿2016/04/13 12:46

編集2016/04/13 13:35

swift 2.2
xcode 7.3

質問の内容を修正致します。
記載忘れがありました。

labelの高さを動的に変えたいのですが、できません。
調べて、下記のコードで試してみましたができませんでした。
heightを自動調整したいです。

swift

1BodyLabel.text = text 2BodyLabel.numberOfLines = 0 3BodyLabel.sizeToFit() 4BodyLabel.lineBreakMode = .ByWordWrapping 5BodyLabel.font = UIFont(name: "HirakakuProN-W6", size: 17)

下記の2つは記述しなければならないことはわかりました。

swift

1BodyLabel.numberOfLines = 0 2BodyLabel.sizeToFit()

何か抜けているコードなどありますでしょうか。

Auto layoutの行数は、0にしております。

宜しくお願い致します。

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

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

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

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

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

t_obara

2016/04/13 13:32

高さとは、y座標のこと?それともheightのこと?
guest

回答2

0

ベストアンサー

Storyboard 上で配置された UILabel の高さを、UILabel.text に設定した文字列の長さに応じて変更するためには
Storyboard 上で該当の UILabel に対して Width(幅)を制限するための制約を追加する必要があります。
(UILabel に対して直接 Width を指定したり、左右のマージンを指定する等の方法があります)
コード上での frame の設定などは不要です。

Storyboard 上での設定がうまく行っていれば、コードは現在のものから削って以下の状態で上手くいくはずです。

swift

1BodyLabel.text = text

投稿2016/04/13 18:23

編集2016/04/14 00:36
happy_ryo

総合スコア56

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

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

atsupoooon

2016/04/13 19:16

回答ありがとうございます。 できました。Storyboard上でwidthの設定ができていませんでした。 勉強になりました。 Storyboardとコード側どちらに設定すれば良いかわかりませんでした。 大変ありがとうございます。
guest

0

heightは、frameを変更することで変わりませんか?

投稿2016/04/13 13:49

t_obara

総合スコア5488

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

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

atsupoooon

2016/04/13 13:58

回答ありがとうございます。 現在下記のコードにしました。 BodyLabel.frame = CGRectMake(0, 0, 600, 80) BodyLabel.text = text BodyLabel.numberOfLines = 0 BodyLabel.sizeToFit() BodyLabel.lineBreakMode = .ByWordWrapping BodyLabel.font = UIFont(name: "HirakakuProN-W6", size: 17) print(text) frameを設定してもサイズが変更されません。 Auto layout側で何かしなければならないこととかありますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問