iOS:如何使用动态长度文本实现设计?

时间:2013-11-29 09:09:33

标签: ios objective-c

如何制作一个简单的设计,如下图所示,文字长度是动态的?在下图中,有两个部分成分和说明与动态文本长度。可能会有更多部分。

我应该使用UIScrollView或Table View进行UIView吗?任何形式的帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您应该使用UITextView转到UILabel / UIScrollView。如果内容不可编辑且您不需要在固定区域滚动文本,则最好使用UILabel。

如果您的需求得到满足,则需要UILabelUIScrollView一起使用。

答案 1 :(得分:0)

尝试这种方法。

1。使用UITextView这样,如果文字非常大,您可以在UITextView内滚动文字。

2. 获取文字视图的大小 //为IOS7和IOS6返回UITextView的大小

-(CGSize) getSizeWithMaxLabelSize:(CGSize) maxLabelSize forTextViewWithText:(NSString *) text  
{
    CGSize expectedLabelSize;
    CGSize maximumLabelSize = maxLabelSize;
    if (SYSTEM_VERSION_GREATER_THAN(@"6.2")) {
        NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont   fontWithName:@"Arial" size:12] forKey: NSFontAttributeName];
        CGRect rect =[text boundingRectWithSize:maximumLabelSize options:NSStringDrawingUsesLineFragmentOrigin attributes:stringAttributes context:nil];
        expectedLabelSize = rect.size;
        expectedLabelSize.height = ceilf(expectedLabelSize.height);
        expectedLabelSize.width  = ceilf(expectedLabelSize.width);
} else {
       expectedLabelSize = [text sizeWithFont:[UIFont fontWithName:@"Arial"  size:EPCommentViewFontSize] constrainedToSize:maximumLabelSize  lineBreakMode:NSLineBreakByWordWrapping];
}    
       return expectedLabelSize;
}

3. 在为表格计算单元格高度时使用此方法(2) - tableView:cellForRowAtIndexPath: