2014-09-25 68 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; 
}