2011-04-24 161 views
2

UITableViewCellStyleSubtitle樣式有關的UITableViewCell,我設置了imageView.image,textLabel.textdetailTextLabel.text。牢房周圍有白色的填充物。我如何擺脫填充,以便我所有的圖像都像下面的Youtube應用程序那樣相互接觸?刪除UITableViewCell上的填充

+0

您應該將@ Borut的答案標記爲工作答案,因爲它更簡單並且是您問題的主要原因。 – Dario 2013-08-09 17:23:48

+0

浪費了一整天的時間!此解決方案也適用於我:http://stackoverflow.com/questions/19103155/ios7-tableview-cell-imageview-extra-padding – Jason 2016-02-19 23:03:15

回答

8

可能做到這將是繼承UITableViewCell和覆蓋-layoutSubviews方法,這樣做最簡單的方法:

- (void)layoutSubviews { 
    //have the cell layout normally 
    [super layoutSubviews]; 
    //get the bounding rectangle that defines the position and size of the image 
    CGRect imgFrame = [[self imageView] frame]; 
    //anchor it to the top-left corner 
    imgFrame.origin = CGPointZero; 
    //change the height to be the height of the cell 
    imgFrame.size.height = [self frame].size.height; 
    //change the width to be the same as the height 
    imgFrame.size.width = imgFrame.size.height; 
    //set the imageView's frame (this will move+resize it) 
    [[self imageView] setFrame:imgFrame]; 

    //reposition the other labels accordingly 
} 
+0

此方法完美。有時它還需要調用子視圖上的layoutSubviews,特別是在調整寬度或高度時。 – 2011-09-22 06:14:18

1

嘗試減少在界面生成器或代碼的UITableView的行高所以沒有填充。 我不得不在tableview的界面生成器中增加填充。 但是Daves的答案可能會讓您更好地控制修改單元格視圖。

2

只是刪除表分隔符:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
+0

偉大的解決方案!謝謝! – 2013-08-08 00:20:41

0

在iOS8上你可以設置

tableView.layoutMargins = UIEdgeInsets.zero 

代碼,或從界面生成器。