在突出显示之前更改UITableCellView外观(来自UITableView)

时间:2011-01-25 20:41:41

标签: objective-c cocoa-touch uikit uitableview

我可能已经花费了一百万个错误的回答来解决这个问题,所以如果有人能够找到我出错的地方,我很乐意进行修改。

我正在尝试构建一个与Contacts应用程序看起来相同的tableview。我的第一个问题是,一个条目在给定的行中将包含粗体和非粗体字符串,如“John Appleseed ”或“Martin Luther King ”。我想我的UITableViewCell中需要两个UILabel(可能是我的第一个错误)。

我想要做的只是添加第二个UILabel而不是子类化我只是在UITableViewCell中添加另一个UILabel(可能是我的下一个错误)。

但是当一行突出显示(但尚未选中)时,默认的UILabel文本会切换为白色,但我的ad-hoc UILabel仍为黑色。我只能强制UILabel文本在突出显示后出现的UITableViewDelegate方法中变为白色。这导致我明显的白色闪光 - >黑色。

现在我看到UITableViewCell方法'setHighlighted:animated:'我可以覆盖,如果我是子类,但我希望这是另一种方法来接近它。

思想?

1 个答案:

答案 0 :(得分:0)

我认为你会发现很难在单独的视图中将姓氏与名称的其他部分成比例地间隔开,特别是考虑到在许多情况下可以通过表格视图调整视图的大小(例如,在表视图处于编辑模式时容纳控件。)

创建UITableViewCell的自定义子类并覆盖其-drawRect:方法来绘制文本本身应该要容易得多。查看UIStringDrawing上的NSString类别,了解可以发送到NSString实例的消息列表,告诉它在给定点或给定点内绘制自己矩形。