1

私はiOS開発の初心者ですが、UITextViewのサイズを自動的に変更するのに問題があります。

マスター/詳細アプリケーションを作成しました。DetailViewController.xibに、ユーザーが投稿した説明を配置するために、タイトル、画像、およびこの画像の下にTextViewのラベルを含むScrollViewを追加しました。
問題は、説明がWebServiceが返すものに依存するため、自動的にサイズ変更する必要があることです。

これが私のコードです:

- (void)configureView
{
    ...
    self.detailDescriptionTextView.text = [self.detailItem valueForKey:@"adDescription"];

    CGRect frame = self.detailDescriptionTextView.frame;
    frame.size.height = self.detailDescriptionTextView.contentSize.height;
    self.detailDescriptionTextView.frame = frame;
)

問題は、TextViewがコンテンツを正しく取得するが、サイズがまったく変更されないことです。しばらくの間答えを探しましたが、ほとんどの答えは私が試したものです...

ご協力いただきありがとうございます。

編集:私は何かを実現しました。説明の下にいくつかの要素を配置するために、Interface Builderの説明に非常に小さなTextViewを配置しましたが、問題がありますか?もしそうなら、Interface Builderにスペースがなくなるので、このTextViewの下に他の要素を配置するにはどうすればよいですか?

編集2:私はついに成功しました。問題は、InterfaceBuilderでTextViewを作成したことだったようです。プログラムで作成することで、完璧に機能しました。それが誰かを助けることができるなら、これが私のコードです:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(20, 195, 280, 10)];
textView.text = [self.detailItem valueForKey:@"adDescription"];
textView.font = [UIFont fontWithName:@"Hevlatica" size:14];
[self.scrollView addSubview:textView];
CGRect descriptionFrame = textView.frame;
descriptionFrame.size.height = textView.contentSize.height;
textView.frame = descriptionFrame;

ご協力いただきありがとうございます。

4

2 に答える 2

4

最初にコンテンツの高さを計算します

NSString *content = @"Hello how are you.";
CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:14]
              constrainedToSize:CGSizeMake(yourWidth, MAX_HEIGHT)
                  lineBreakMode:UILineBreakModeWordWrap];

次に、textViewのフレームを設定します

[self.textView setFrame:CGRectMake(5, 30, 100, size.height + 10)];

または

コンテンツをテキストビューに追加してから、これを試してください

CGRect frame = self.textView.frame;
frame.size.height = self.textView.contentSize.height;
self.textView.frame = frame;

お役に立てれば !!!

于 2013-03-15T12:52:44.273 に答える
1
 CGSize constraint = CGSizeMake(690.0, 2000.0);
 int h=10;
 CGSize size_txt_overview1 = [[self.detailItem valueForKey:@"adDescription"] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:18] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
frame.size.height = size_txt_overview1.height;
self.detailDescriptionTextView.frame = frame;
于 2013-03-15T12:50:14.803 に答える