iphone - 子类化 UITableViewCell 后标签不会显示文本
<p><p>所以我知道这是被问了一百万次。也许我太累了,但我不明白为什么这个标签文本不会更新。这是我的代码</p>
<p>CustomCell.h</p>
<pre><code>#import <UIKit/UIKit.h>
@interface CustomCell : UITableViewCell {
UILabel *mainLabel;
UILabel *leftBottomLabel;
UILabel *rightBottomLabel;
}
@property (nonatomic, retain) UILabel *mainLabel;
@property (nonatomic, retain) UILabel *leftBottomLabel;
@property (nonatomic, retain) UILabel *rightBottomLabel;
@end
</code></pre>
<p>CustomCell.m</p>
<pre><code>#import "CustomCell.h"
@implementation CustomCell
@synthesize mainLabel;
@synthesize leftBottomLabel;
@synthesize rightBottomLabel;
-(id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = ) {
// Initialization code
UIView *myContentView = self.contentView;
self.mainLabel.textAlignment = UITextAlignmentLeft;
;
;
self.leftBottomLabel.textAlignment = UITextAlignmentLeft;
;
;
self.rightBottomLabel.textAlignment = UITextAlignmentLeft; // default
;
;
}
return self;
}
- (void)layoutSubviews {
;
CGRect contentRect = self.contentView.bounds;
CGFloat boundsX = contentRect.origin.x;
CGRect frame;
frame = CGRectMake(boundsX + 10, 4, 200, 20);
self.mainLabel.frame = frame;
self.mainLabel.backgroundColor = ;
frame = CGRectMake(boundsX + 10, 28, 200, 20);
self.leftBottomLabel.frame = frame;
self.leftBottomLabel.backgroundColor = ;
frame = CGRectMake(boundsX + 100, 28, 200, 14);
self.rightBottomLabel.frame = frame;
self.rightBottomLabel.backgroundColor = ;
}
- (void)dealloc {
;
;
;
;
}
@end
</code></pre>
<p>MyView.m</p>
<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = (CustomCell *);
if (cell == nil) {
cell = [[ initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.mainLabel.text = @"Hello";
return cell;
}
</code></pre>
<p>有什么想法吗?我在这个标签上什么都没有,不知道为什么。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您需要先创建每三个标签,然后才能更改它们的属性或进行任何屏幕绘制。目前,这三个标签才被宣布。要修复,在您的 <code>initWithStyle:reuseIdentifier:</code> 中,在顶部添加以下内容:</p>
<pre><code>self.mainLabel = [ init];
self.leftBottomLabel = [ init];
self.rightBottomLabel = [ init];
</code></pre>
<p>您的 <code>layoutSubviews</code> 代码将处理框架更改(这就是为什么您不需要 <code>[ initWithFrame..]</code> 来初始化,因为您自己设置框架later) ' 在适当的时间,您的标签现在应该可以正确显示了。</p></p>
<p style="font-size: 20px;">关于iphone - 子类化 UITableViewCell 后标签不会显示文本,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/6805331/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/6805331/
</a>
</p>
页:
[1]