在iOS 7中,默认UITableViewCell
separator
从左侧稍微向下切割,可以显示单元格的imageView
。
我可以使用以下代码更改为完整尺寸。
[self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
我希望在我的iPad方向为Portrait时更改它。
所以我尝试在旋转事件中跟随代码
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 Cell Separator。
我该怎么做?
答案 0 :(得分:11)
您的意思是手动界面生成器?如果是这种情况,请在IB中单击您的UITableViewCell并转到第三个面板,在Separator insets中选择custom,您可以输入左右值。
编辑:如果您想通过代码执行此操作,请参阅UIEdgeInsets结构的文档: UIEdgeInsets 定义视图的插入距离。
typedef struct {
CGFloat top, left, bottom, right;
} UIEdgeInsets;
然后例如:
self.tableViewMain.separatorInset = UIEdgeInsetsMake (0, 15, 0,0);
答案 1 :(得分:2)
你走了。
[self.tableViewMain setSeparatorInset:UIEdgeInsetsMake(15, 0, 0, 0)];
修改强>
以上回答是错误的。添加自定义UIView
将解决此问题。
你的cellForRowAtIndexPath
应该是谎言
-(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;
}
答案 2 :(得分:1)
你应该在左边插入的位置负值
self.tableView.separatorInset = UIEdgeInsetsMake (0, -15, 0,0);