bir*_*age 2 xcode objective-c uitableview ios
我在使用自定义滑动删除按钮时遇到问题UITableViewCell
.当我滑动它时,删除按钮位于单元格中的文本下方.您可以在下面看到我正在使用的图像和代码.
注意:我在xib中绘制tableviewcell.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return YES if you want the specified item to be editable.
return YES;
}
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
//add code here for when you hit delete
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"HareketCell";
HareketCell *cell = (HareketCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HareketCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
[cell.lblDakika setText:[NSString stringWithFormat:@"%@%@", [[arrProgramim objectAtIndex:indexPath.row]valueForKey:@"dakika"], @" dk"]];
[cell.imgThumbnail setImage:[UIImage imageNamed:@"most_harita_icon.png"]];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
那是因为你没有添加UILabel
作为的一个子视图contentView
中UITableViewCell
,要添加它的子视图UITableViewCell
本身.
如果要子类化UITableViewCell
并向其添加子视图,则应始终将它们添加到contentView
单元格中.
这是来自Apple的UITableViewCell文档:
如果要超出预定义样式,可以将子视图添加到单元格的contentView属性.
如果你这样做,iOS会自动调整contentView中的所有内容,以显示删除按钮并且没有任何重叠.
更新:
从下面的注释中,单元格是在单独的.xib上创建的,因此标签已经是单元格的子视图 contentView
问题是加载NIB -tableView:cellForRowAtIndexPath:
.例如,您必须事先在表视图上注册NIB -viewDidLoad
.像这样:
- (void)viewDidLoad {
// Assuming the xib is named HareketCell.xib
UINib *nib = [UINib nibWithNibName:@"HareketCell" bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier:@"HareketCell"];
}
Run Code Online (Sandbox Code Playgroud)
现在,改变-tableView:cellForRowAtIndexPath:
这个:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"HareketCell";
HareketCell *cell = (HareketCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
[cell.lblDakika setText:[NSString stringWithFormat:@"%@%@", [[arrProgramim objectAtIndex:indexPath.row]valueForKey:@"dakika"], @" dk"]];
[cell.imgThumbnail setImage:[UIImage imageNamed:@"most_harita_icon.png"]];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
您可以看到,-dequeueReusableCellWithIdentifier
如果您事先注册,则已自动为您加载NIB.
归档时间: |
|
查看次数: |
719 次 |
最近记录: |