2015-06-27 24 views
-1

我想我的iOS應用程序在UITableView的每個原型UITableViewCell中顯示圖像。我的UITableView已創建在故事板中,圖像是用imageView屬性以編程方式指定的,而不是NSLayoutConstraints和自動佈局。如何以UITableViewCells爲中心編程圖像?

我發現UIImages的對齊不同於圖標的寬度。例如,在下圖中有兩個寬度不同的藍色圖標。與UILabel它旁邊的第二個圖標,似乎如果相比於頂部的一行來沒有正確對齊:

我想通過把圖像這種錯位可以通過使用自動佈局固定原型單元格,然後爲每個圖標設置約束。我認爲這是一項繁瑣的工作,應該有更好的方法,因爲在這種情況下,imageView屬性確實派上用場。它幾乎爲你工作。可能是一個屬性來居中圖像,即使單元格中的圖像不具有相同的寬度,它看起來都很好。

+0

我不明白使用自動佈局的問題;這是它的一個用例。如果這是一個靜態tableview,那麼每個單元都有一點點工作,但並不多。 –

+0

謝謝@RoboticCat。我要使用AutoLayout。 – Cesare

回答

1

一旦你理解了約束條件,它們並沒有那麼糟糕,並且單元格是配置最簡單的情況之一。

在這種情況下,只需在寬度上設置一個約束(即將寬度設置爲XX),另一個約束將其垂直居中於單元格內,然後在圖像旁邊的標籤上添加一對約束(左和右)。

約束變得如此重要的原因之一是因爲屏幕的寬度變化(因此,桌面視圖中的單元格)因此爲了讓它們看起來正確,約束確實使它變得更容易。

0

您可以在UIImageView上設置內容模式。嘗試中心選項。

imageView.contentMode = .center 
+0

謝謝。這種方法不起作用。在'cellForRowAtIndexPath'方法中,我創建了一個'UIImageView',設置它的'contentMode',然後用'imageView.view'將它分配給一個表格視圖單元格。代碼編譯但沒有改變。 – Cesare

+0

創建您自己的自定義單元格。如果問題仍然存在,請查看源代碼。在你的例子中,第二個單元格文本也向左偏移。自定義單元格將解決此問題。 – jarryd

相關問題