谁能识别这个对象?

时间:2014-04-02 13:34:25

标签: ios ios7

您好我正在努力确定此应用使用哪种对象来填充下面的字段,它会根据文本的数量自动调整大小,并且每个字段都没有滚动仅适用于所有字段。我已经尝试过标签,文本视图,但没有用。

开发人员回复,他使用“CUSTOM UIVIEW”任何想法如何做到这一点?感谢

enter image description here

http://i58.tinypic.com/nbqezb.jpg

3 个答案:

答案 0 :(得分:3)

我最好的猜测是他们使用UITableView并根据每行中的文字动态计算UITableViewCell高度。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    // Calculate the height of the row, based on the string for this indexPath
}

在iOS 7上,您可以使用以下NSString方法来确定给定矩形中字符串的高度:

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context;

在iOS 6及更早版本中,您可以使用:

- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(NSLineBreakMode)lineBreakMode;

答案 1 :(得分:1)

这是一个CUSTOM UIView,您可以查看如何启用它: http://www.raywenderlich.com/1768/uiview-tutorial-for-ios-how-to-make-a-custom-uiview-in-ios-5-a-5-star-rating-view 这是一个很棒的教程。

答案 2 :(得分:0)

在我看来像是一个带有自定义单元格的UITableView,他们正在根据文本调整单元格高度。我使用此代码调整应用中的单元格高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (self.questions.count == 0) return 44;
    CGFloat labelNeededHeight = [self.questions[indexPath.row][@"title"] sizeWithFont:[UIFont fontWithName:@"AvenirNext-Regular" size:19.0] constrainedToSize:CGSizeMake(self.view.frame.size.width - 68, 5000)].height;
    return MAX(labelNeededHeight, 44);
}

您需要将自己的值放在constrainedToSize参数中,CGSizeMake中的第一个是单元格中标签的宽度,第二个(我的情况下为5000)是最大值细胞允许的高度。