UITableviewCell textLabel在ios7中不可见
Posted
技术标签:
【中文标题】UITableviewCell textLabel在ios7中不可见【英文标题】:UITableviewCell textLabel not visible in ios7 【发布时间】:2014-02-27 07:38:00 【问题描述】:我正在使用以下代码显示UITableView
的单元格,
static NSString *identifier=@"reusableIdentifier";
UITableViewCell *cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:identifier];
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
NSLog(@"%d",indexPath.row);
[cell.textLabel setText:@"hi"];
cell.textLabel.font = [UIFont fontWithName:@"Verdana" size:12.0];
[cell.textLabel sizeToFit];
cell.textLabel.transform = CGAffineTransformMakeRotation(M_PI_2);
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.textAlignment = NSTextAlignmentCenter;
[cell.textLabel setTextColor:[UIColor blackColor]];
cell.backgroundColor=[UIColor clearColor];
cell.selectionStyle=UITableViewCellSelectionStyleBlue;
NSLog(@"textlabel frame %@",NSStringFromCGRect(cell.textLabel.frame));
return cell;
在 ios 6 中工作正常,在 ios6 中显示 textlabel,但在 ios7 中不显示 textLabel。
除了 textLabel 在 ios7 中一切正常。
在写sizetofit之前还有一件事,textLabel的frame是(0,0,0,0)
但在添加sizetofit
之后,它的 (0,0,12,15),即使它没有显示 textLabel。
ios 7 中的表格视图 iOS 6 中的表格视图
【问题讨论】:
试试这个 cell.textLabel.contentMode=UIViewContentModeCenter; @CharanGiri 试过但没用。 【参考方案1】:只需用这个替换你的代码:
-(void) viewDidLoad
CGAffineTransform rotateTable = CGAffineTransformMakeRotation(-M_PI_2);
self.tableView.transform = rotateTable;
self.tableView.frame = CGRectMake(0, 100,self.tableView.frame.size.width, self.tableView.frame.size.height);
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
return 1;
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return 10;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *identifier=@"reusableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
NSLog(@"%d",indexPath.row);
[cell.textLabel setText:@"hi"];
cell.textLabel.font = [UIFont fontWithName:@"Verdana" size:12.0];
[cell.textLabel sizeToFit];
cell.textLabel.transform = CGAffineTransformMakeRotation(M_PI_2);
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.textAlignment = NSTextAlignmentCenter;
[cell.textLabel setTextColor:[UIColor blackColor]];
cell.backgroundColor=[UIColor clearColor];
cell.selectionStyle=UITableViewCellSelectionStyleBlue;
NSLog(@"textlabel frame %@",NSStringFromCGRect(cell.textLabel.frame));
return cell;
【讨论】:
谢谢但不起作用,你认为你的代码中的哪一点应该解决我的问题? 我已经检查过了。工作正常。所有单元格都显示“hi”; 添加对您在代码中纠正的问题的解释会很方便。以上是关于UITableviewCell textLabel在ios7中不可见的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell 中设置 textLabel 的宽度
iPhone UITableViewCell:重新定位 textLabel
为啥 UITableViewCell textLabel 属性是可选的?
如何防止 UITableViewCell 中的缩进 contentView 而不是 textLabel