2016-10-05 8 views
4

私はストーリーボードを使ってUIViewをデザインしています。しかし、私はタスクに立ち往生しました:私は複数行を持っていますUILabelUIViewUIButtonUILabelは私のボタンをラップするようにしたい - テキストの最初の行には、末尾の制約があるUIButtonもう1つはスーパービューです。私のUILabelにテキストがない場合、私はラベルの一番下のビューを取得しました。このビューの後ろの制約をUIButtonにする必要がありますが、空きスペースがあればスーパービューになります。 スクリーンショットの例:複数行のUILabelがボタンをラップするようにする

enter image description here

私は 'pyat' の後に二行目の単語をジャンプします。私の貧しい英語のために申し訳ありません、その写真が私の質問を説明するのに役立つことを願っています。 IBで直接作成することはできますか?

+3

私は 'UILabel'の代わりに' UITextView'を使うことを提案します(いくつかの素早い修正を加えれば、 'UILabel'のようになり、'のようになり、 'yourTextView.textContainer.exclusionPaths'を使用します)。 IBではなくコードであること。 – Larme

+0

申し訳ありませんが、interfacebuilderではできません –

+0

@Jeckyこれを行う方法を教えてもらえますか? Obj-c言語 –

答えて

0

おそらくUILabelの代わりに、textView.textContainer.exclusionPathsプロパティを使用して除外するボタンコンテナ領域を定義して、UITextViewを試すことができます。

sample codeにはreported issue for selected and editable caseがあります。

このプロパティを使用する場合は、アプリのデプロイメントターゲットの最小値を7以上に制限する必要があります。

希望に役立ちます!

0

あなたがしたいことは、すぐにサポートされず、UILabelをサブクラス化してdrawRectをオーバーライドする必要があるため、多くの作業が必要になります。

簡単な解決策は、属性付きのテキストをラベルに設定し、それを使用して特定の単語をボタンのように整形することです。 UILabel帰属テキストは、ハイパーリンクのような動作をサポートします。

関連する問題