Objective c 如何像iOS7一样制作UITableView单元格分隔符?

Objective c 如何像iOS7一样制作UITableView单元格分隔符?,objective-c,uitableview,ios7,Objective C,Uitableview,Ios7,在iOS 7中,默认的UITableViewCell分隔符是从左侧稍微剪切一点,可以显示单元格的imageView 我可以使用以下代码更改为全尺寸 [self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 当我的iPad方向是纵向时,我想改变它 所以我试着在旋转事件中遵循代码 if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ||(UID

在iOS 7中,默认的
UITableViewCell
分隔符
是从左侧稍微剪切一点,可以显示单元格的
imageView

我可以使用以下代码更改为全尺寸

[self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
当我的iPad方向是纵向时,我想改变它

所以我试着在旋转事件中遵循代码

if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ||(UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)))
    {
        [self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
    }

    else
    {
        [self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(15, 0, 0, 0)];
    }
我想像iOS7一样手动进行单元格分隔


我该怎么做?

你指的是手动界面生成器?如果是这种情况,请单击IB中的UITableViewCell并转到第三个面板,在分隔符插图中选择“自定义”,然后可以输入左右值。

编辑:如果要通过代码进行编辑,请参阅UIEdgeInsets结构的文档: UIEdgeInsets 定义视图的插入距离

typedef struct {
   CGFloat top, left, bottom, right;
} UIEdgeInsets;
例如:

self.tableViewMain.separatorInset = UIEdgeInsetsMake (0, 15, 0,0);
给你

[self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(15,0,0,0)]

编辑:

以上答案是错误的。添加自定义
UIView
将解决此问题。 您的
cellforrowatinexpath
应该是

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    UIView *lineView;

    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];

        lineView = [[UIView alloc] initWithFrame:CGRectMake(15, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];

        [cell.contentView setFrame:CGRectMake(0, 0, cell.contentView.frame.size.width, cell.contentView.frame.size.height-1)];

        [cell.textLabel setBackgroundColor:[UIColor clearColor]];

        lineView.backgroundColor = [UIColor darkGrayColor];

        [cell.contentView addSubview:lineView];

        [lineView release]; // IGNORE IF USING ARC
    }

    [cell.textLabel setText:@"YOUR_TEXT"];


    return cell;
}

您应该在左插图处使用负值

self.tableView.separatorInset = UIEdgeInsetsMake (0, -15, 0,0);

对于有意识的人来说,默认iOS 7分隔符的颜色似乎是0xCCCC或RGB(204204204),默认高度
0.5
点,而不是
1.0
“负值被视为插入设置为0。”