1

AFNetworking で解析している JSON 文字列 (「本体」) にリンクされているコレクション ビュー セル内に UITextView があります。その文字列内のテキストはさまざまです (私の「投稿」ごとに異なる情報があります)。すべてのテキストが表示されるように、文字列内のコンテンツに基づいて UITextView を拡張する必要があります。

コレクション ビュー セル

@property (weak, nonatomic, readonly) IBOutlet UITextView *body;

ビューコントローラー:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *identifier = @"Cell";

    PostCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    NSDictionary *newPostDictionary = [self.singlePost objectAtIndex:indexPath.row];

    cell.body.text = [newPostDictionary objectForKey:@"caption"];

    NSLog(@"@");

    return cell;
}

View Controller 内にこのコードを追加しようとしましたが、何もしませんでした。

- (CGFloat)textViewHeightForAttributedText: (NSAttributedString*)text andWidth: (CGFloat)width {
    UITextView *calculationView = [[UITextView alloc] init];
    [calculationView setAttributedText:text];
    CGSize size = [calculationView sizeThatFits:CGSizeMake(width, FLT_MAX)];
    return size.height;
}

ありがとう。

4

3 に答える 3

0

sizeWithFont:constrainedToSize:文字列のサイズを取得するために使用します

iOS7 を使用している場合は、boundingRectWithSize:options:attributes:context:代わりに使用します ( iOS7 ではsizeWithFont:constrainedToSize:非推奨です)。

于 2013-11-01T18:29:24.640 に答える
0

UITextView フレームをその中のコンテンツと同じに設定します。

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;
于 2013-11-01T18:31:14.903 に答える