2014-09-25 67 views
0

我可以调整UITableview分隔线的高度吗?我在单元格中添加了UIView作为分隔线,它的优点是,问题是当我滑动单元格以删除它时,删除按钮就是问题,它与分隔线重叠,还是可以调整删除按钮的高度?UItableview分隔线的高度

separator linedelete

enter image description here

回答

0

如果您无法调整删除按钮的大小,请调整您的底部UIView,以便它可以重叠删除按钮。

0

在你TableViewCell layoutSubviews方法写:

if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) { 
    UIView *deleteButtonView = (UIView *)[subview.subviews objectAtIndex:0]; 
    CGRect newf = deleteButtonView.frame; 
    newf.origin.x = 250; 
    newf.origin.y = 47; 
    newf.size.width = 30; 
    newf.size.height = 50; 

    deleteButtonView.frame = newf; 
} 

希望这有助于.. :)

+0

我会稍后再试:) – MaappeaL 2014-09-25 05:15:43

+0

我没有为我工作。 – MaappeaL 2014-09-25 06:53:09

+0

ios 11中缺少UITableViewCellDeleteConfirmationControl – 2017-10-12 16:48:14

1

由拉沙德粘贴的代码将是很老的(发现here ),并似乎并不适用于iOS 7或iOS工作8

这里被更新的代码工作:

-(void)layoutSubviews { 

    UIView *deleteButtonView = nil; 

    for (UIView *subview in self.subviews) { 
     // find the delete view in iOS 8 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]){ 
      deleteButtonView = subview; 
      break; 
     } 

     // find the delete view in iOS 7 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellScrollView"]) { 
      for (UIView *secondSubview in [subview subviews]) { 
       if ([NSStringFromClass([secondSubview class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { 
        deleteButtonView = secondSubview; 
        break; 
       } 
      } 
     } 
    } 

    int heightOffset = 5; 
    CGRect buttonFrame = deleteButtonView.frame; 
    buttonFrame.origin.y = heightOffset; 
    buttonFrame.size.height = self.frame.size.height-2*heightOffset; 
    deleteButtonView.frame = buttonFrame; 
}