1

これは私が試したものです、

 UITextView *_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 10)];
    NSString *str = @"This is a test text view to check the auto increment of height of a text     view. This is only a test. The real data is something different.";
    _textView.text = str;


CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;//Here i am adjusting the textview

[self.view addSubview:_textView];



Basically after fitting the text into textview,scrolling is enable,but i cannot view the content inside the textview without scrolling the textview.I do want to initialize the UITextView frame size based on the text size,font name etc.

どんな解決策でも大歓迎です.Thanks.

4

1 に答える 1

2
NSString *str = @"This is a test text view to check the auto increment of height of a text     view. This is only a test. The real data is something different.";
UIFont * myFont = [UIFont fontWithName:@"your font Name"size:12];//specify your font details here

//次に、上記のテキストに必要な高さを計算します。

CGSize textviewSize = [str sizeWithFont:myFont constrainedToSize:CGSizeMake(300, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];

//上記から取得した高さに基づいてテキストビューを初期化します

UITextView *_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, textviewSize.width, textviewSize.height)];
_textView.text = str;
[self.view addSubview:_textView];

また、テキストビューでスクロールを無効にしたい場合は、これを参照してください。

ウィリアム・ジョクシュが彼の答えで述べているように:

次のメソッドを UITextView サブクラスに入れることで、ほとんどすべてのスクロールを無効にすることができます。

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated {
  // do nothing
}

「ほぼ」すべてのスクロールと言う理由は、上記の場合でも、ユーザーのスクロールを受け入れるためです。self.scrollEnabled を NO に設定することで無効にできますが。

一部のスクロールのみを無効にする場合は、ivar を作成し、それを acceptScrolls と呼んで、スクロールを許可するかどうかを決定します。次に、 scrollRectToVisible メソッドは次のようになります。

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated {
   if (self.acceptScrolls)
     [super scrollRectToVisible: rect animated: animated];
}
于 2013-01-26T05:09:40.387 に答える