2015-06-07 28 views
1

我有一個UIImageView的原型單元。將UITableCell圖像定位到左邊框

我想將它精確地定位到屏幕的左邊緣(默認情況下沒有間隔)。

第一張圖片是我的(默認tableView和單元格),第二個是我想要做的。

enter image description here

不管我怎麼努力(frameboundsCGAffineTransformcell.imageView)總是有邊緣和圖像之間的空間,它就像iOS的阻止這種行爲。

我沒有使用AutoLayout,並希望以編程方式執行此操作。

解決方案

#import "ResultCell.h" 

@implementation ResultCell 

-(void) layoutSubviews { 
[super layoutSubviews]; 
self.imageView.frame = CGRectMake(-10,0,10,10); 
} 

@end 

詳情請見@馬特的答案。

+0

您可以在這裏發佈您的相關代碼 – Bannings

+0

您可以通過圖片或其他類似的東西發佈您的需求和您目前正在獲得的東西。 – iYoung

+0

問題是圖像視圖不能移動到單元格邊緣,或者表格視圖不能移動到屏幕邊緣?你如何定位表格視圖本身? – rdelmar

回答

2

它像iOS的防止這種行爲

你是絕對正確的。您正在重新定位圖像視圖,但是單元格正在前進並將其重新定位在其layoutSubviews中。

解決方案是使用自定義單元格類別,您可以覆蓋layoutSubviews。例如:

class MyCell : UITableViewCell { 
    override func layoutSubviews() { 
     super.layoutSubviews() 
     self.imageView!.frame.origin.x = 0 
    } 
} 

你將不得不作出各種其他安排,當然,爲了確保一個實例了myCell實際上使用,而不是默認的UITableViewCell。但這只是給讀者一個練習!

+0

在我的書中有更詳細的討論:http://www.apeth.com/iOSBook/ch21 .html#_overriding_a_cell_8217_s_subview_layout - 其中還提供了其他方法,我認爲這樣做更好,即提供自己的自定義子視圖,而不是使用默認的「imageView」。 – matt

+0

這似乎不起作用,請參閱我更新的答案,謝謝。 – kursus

+0

Hi @ kursus - 讓我們調試它!首先,在'layoutSubviews'中放置一個斷點,讓我們確保它甚至被調用,'self.imageView'不是零。然後,我們可以從那裏繼續... – matt