我有一个 UITableViewController,它显示自定义 UITableViewCell (继承自 UITableViewCell)。同一个 UITableViewCell 有一个 UILabel,可以包含可变长度的文本。我面临的挑战是如何在 UITableViewController 中访问此 UILabel,以便我可以在 heightForRowAtIndexPath 中设置正确的单元格高度。
或者顺便说一句,我如何解决动态大小标签的问题。
谢谢
这是我的自定义 UITableViewCell 代码:
标题:
#import <UIKit/UIKit.h>
@interface MessagesCustomViewCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *message; <---- need to access this
@end
实现:
#import "MessagesCustomViewCell.h"
@implementation MessagesCustomViewCell
@synthesize message=_message;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
最佳答案
使用Ivan提到的测量字体大小的方法,您可以在MessagesCustomViewCell中额外添加一个类方法,
+ (CGFloat)heightForMessage:(NSString *)message;
其中您使用适当的 UILabel 宽度/高度、字体等计算消息的高度。这可以从 heightForRowAtIndexPath: 调用,如下所示:
NSString *dynamicString = [self.mydata objectAtIndex:indexPath.row];
CGFloat height = [MessagesCustomViewCell heightForMessage:dynamicString];
return height;
关于ios - 具有动态 UILabel 的 UITableViewCell 的动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125488/