2

次のようなUITextViewのストーリーボードに がUINavigationControllerあります。

ここに画像の説明を入力

最上部のテキストがナビゲーション バーの下に隠れないようにするための自動レイアウト制約と、左、右、および下の制約があります。

カスタムNSTextStorageサブクラスを使用する必要がありますが、UITextView手動でインスタンス化してビューに挿入する必要があることを理解しています。私の質問は、これらの制約をコードでどのように模倣するかです。

UITextViewを初期化するために書いたコードは次のとおりです。

_textStorage = [[MyCustomTextStorage alloc] initWithString:@"some string"];

_layoutManager = [NSLayoutManager new];
[_textStorage addLayoutManager: _layoutManager];

_textContainer = [NSTextContainer new];
[_layoutManager addTextContainer: _textContainer];

_textView = [[UITextView alloc] initWithFrame:self.view.bounds textContainer:_textContainer];

[self.view addSubview:_textView];

余談ですが、ストーリーボードでカスタムUITextStorageサブクラスを使用する方法があれば、これを回避できますがUITextView、これは不可能だと誤解していますか?

4

1 に答える 1

4

私自身の質問に答えるために、ここでの解決策は、UITextView をサブクラス化し、サブクラスでカスタム動作を実装してから、ストーリーボードで UITextView を設定してサブクラスを使用することでした。これにより、ストーリーボードからの制約の初期セットを維持できます。

于 2014-05-17T08:36:15.763 に答える