我正在使用UITableView并使用自定义单元格。我正在设置UILabel。我的第一行UITableView是空的.UILabel从第二行开始。滚动向上后UILabel消失了。向下滚动UILabel出现。我们如何解决这个问题。 在视图上加载
self.automaticallyAdjustsScrollViewInsets = NO;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"CustumCell";
CustumCell *cell = (CustumCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustumCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(20, 0, 200 ,200 )];
label.text=@"hello";
[cell.contentView addSubview:label];
return cell;
}
- (CGFloat )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 40;
}
答案 0 :(得分:2)
尝试使用以下代码
CustumCell *cell = (CustumCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustumCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(20, 0, 200 ,200 )];
label.tag=1;
[cell.contentView addSubview:label];
}
UILabel *label = (UILabel *)[cell.contentView viewWithTag:1];
label.text=@"hello";
每次都不需要分配标签。只有当cell为nil时你才会分配它。 对于其他人尝试使用标记
获取标签