2009-06-24 129 views
1

我有一個tableView,它鬆散地基於舊SQLiteBooks中的DetailViewController。它以編程方式創建。每個單元顯示單個值,單擊時顯示一個允許用戶編輯該值的通用編輯控制器。漂亮的標準可可觸摸的東西...在TableViewCell中更改UILabel的屬性

除了...我也有一個在所述tableView的標題分段控制取決於它的設置需要更改UILabel上的屬性(textColor)在8之一表中的±tableViewCells。我沒有這個tableView的IBOutlets,因爲我完全用代碼創建了它。那麼,我需要在我的(void)segmentAction中做什麼:(id)發件人方法(在segmentedControl更改狀態時觸發)以允許我訪問&更改此值並將其顯示給用戶?在建表時(cellForRowAtIndexPath),每個UILabel被稱爲「value」,然後添加:[cell.contentView addSubview:value]

我已經嘗試設置的viewController本身則是在的cellForRowAtIndexPath檢查並做了文字顏色業務存在的屬性...然後加入[self.tableView setNeedsDisplay]segmentAction:方法,但它似乎沒有工作?!?

任何想法?

回答

0

在實現cellForRowAtIndexPath的類中,您還可以存儲對構建相關單元格時所需的UILabel的引用。

這意味着您可以更改標籤並將其標記爲重新粉刷。

或者,您可以持有一個本地布爾值來顯示單元格應該以不同的方式繪製 - 然後在cellForRowAtIndexPath中使用它:以背景繪製它。

您可能會發現這更容易與3.0爲textLabel對象在一個UITableViewCell

+0

Doh!在我的控制器中有一個簡單的ivar,它在創建時指向所述UILabel!很棒!謝謝。 – Meltemi 2009-06-24 18:00:15

1

如果您知道要修改的單元格的索引路徑,則可以調用cellForRowAtIndexPath:以檢索UITableViewCell。一旦你有了,你可以從它得到UILabel。如果您在創建UILabel標籤時將其設置爲某個有用值,則可以通過viewWithTag:從UITableViewCell中檢索它。

+0

我有這個,或者至少我的這種做法的解釋的問題是,我在我參與的cellForRowAtIndexPath太多事情把桌子擺在首位。雖然隨着有條件的論點,我可能會得到這個工作... – Meltemi 2009-06-24 17:58:09