我的Collection View Cell里面有一个UITextView,它链接到我正在用AFNetworking解析的JSON字符串(“body”)。该字符串中的文本各不相同(我的每个“帖子”都有不同的信息)。我希望我的UITextView能够根据我的String中的内容进行扩展,以便显示所有文本。
集合查看单元
@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;
}
感谢。
答案 0 :(得分:0)
要获取任何文本的大小,您应该使用NSString的方法:sizeWithFont:constrainedToSize:
作为参数传递字体,并且可以从该文本中获得最大大小。
CGSize expectedLabelSize = [text sizeWithFont:[UIFont fontWithName:fontName size:fontSize] constrainedToSize:maxSize];
答案 1 :(得分:0)
使用sizeWithFont:constrainedToSize:
获取字符串
如果您使用的是iOS7,请改用boundingRectWithSize:options:attributes:context:
(iOS7上不推荐sizeWithFont:constrainedToSize:
)
答案 2 :(得分:0)
将UITextView框架设置为与其中的内容相同:
CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;