2011-01-25 42 views
0

我可能花了一百萬次錯誤的回合來解決這個問題,所以我很樂意修改,如果有人能夠發現我出錯的地方。在UITableCellView突出顯示之前更改(來自UITableView)

我想建立一個與聯繫人應用程序看起來一樣的tableview。我的第一個問題是,一個條目將在給定的行中有一個粗體字符串和非空白字符串,如「John Appleseed」或「Martin Luther King」。我想我需要在我的UITableViewCell中有兩個UILabel(可能是我的第一個錯誤)。

所有我想要做的只是添加第二個UILabel,而不是繼承我只是在UITableViewCell中添加另一個UILabel(可能是我的下一個錯誤)。

但是,當某行突出顯示(但尚未選中)時,默認的UILabel文本將切換爲白色,但我的臨時UILabel保持爲黑色。我只能強制UILabel文本在突出顯示後發生的UITableViewDelegate方法中變爲白色。這導致我明顯的白色 - >黑色閃光。

現在我看到UITableViewCell方法'setHighlighted:animated:',我可以覆蓋如果我subclassed,但我希望是另一種方法來處理它。

想法?

回答

0

我想你會發現難以在單獨的視圖中保持姓氏與名稱的其他部分按比例間隔,特別是考慮到在許多情況下視圖可能被表視圖調整大小(例如,當表格視圖處於編輯模式時適應控件)。

創建UITableViewCell的自定義子類並覆蓋它的-drawRect:方法以繪製文本本身應該會容易很多。查看NSString上的UIStringDrawing類別,查看可發送給NSString實例的消息列表,以指示其在給定點或給定矩形內繪製自己。

+0

嗨,謝謝,我正在使用sizeWithFont:放置第二個UILabel並使用總單元格寬度減去第一個名稱標籤寬度來確定第二個UELabel的大小。 我結束了子類化和實現layoutSubviews方法。我解決了setHighlighted中的上述問題:突出顯示: – rob5408

相關問題