您好我正在努力确定此应用使用哪种对象来填充下面的字段,它会根据文本的数量自动调整大小,并且每个字段都没有滚动仅适用于所有字段。我已经尝试过标签,文本视图,但没有用。
开发人员回复,他使用“CUSTOM UIVIEW”任何想法如何做到这一点?感谢
答案 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)是最大值细胞允许的高度。