1

我的集合视图单元中有一个 UITextView,它链接到我正在使用 AFNetworking 解析的 JSON 字符串(“正文”)。该字符串中的文本各不相同(我的每个“帖子”都有不同的信息)。我希望我的 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;
}

我尝试在我的视图控制器中添加这段代码,但什么也没做。

- (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

将 UITextView 框架设置为与其中的内容相同:

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;
于 2013-11-01T18:31:14.903 回答
0

用于sizeWithFont:constrainedToSize:获取字符串的大小

如果您使用的是 iOS7,请boundingRectWithSize:options:attributes:context:改用(sizeWithFont:constrainedToSize:在 iOS7 上已弃用)

于 2013-11-01T18:29:24.640 回答
0

要获取任何文本的大小,您应该使用 NSString 的方法:sizeWithFont:constrainedToSize:您将字体作为参数传递,并且可以从该文本达到最大大小。

CGSize expectedLabelSize = [text sizeWithFont:[UIFont fontWithName:fontName size:fontSize] constrainedToSize:maxSize];
于 2013-11-01T18:19:53.287 回答