【发布时间】:2014-11-01 13:45:30
【问题描述】:
我有一个具有动态子视图的 UITableView。
当表格是静态的时,它看起来像这样: 带有 T 的圆形视图是自定义子视图
但是当我选择编辑并拖动表格单元格时,它会失去颜色和 T。
这是什么原因?
我这样初始化单元格(这是一个原型 IB 单元格):
func configureCell(cell: UITableViewCell, atIndexPath indexPath: NSIndexPath) {
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as Item
//cell.textLabel.text = object.valueForKey("name")!.description
let cSubView = cell.viewWithTag(100) as RoundedIcon
cSubView.setUpViewWithFirstLetter(String(first(object.name)!).uppercaseString)
}
RoundedIcon 的工作方式如下:
override init(frame: CGRect) {
super.init(frame: frame)
self.layer.cornerRadius = self.frame.size.width / 2;
self.layer.borderWidth = 1.0;
self.layer.borderColor = UIColor.lightGrayColor().CGColor;
self.clipsToBounds = true;
}
func setUpViewWithFirstLetter(letter:String){
self.backgroundColor = RoundedIcon.UIColorFromRGB(0x68C3A3)
let theLetterLabel = UILabel()
theLetterLabel.text = letter
theLetterLabel.textColor = UIColor.whiteColor()
theLetterLabel.textAlignment = .Center
theLetterLabel.font = UIFont.systemFontOfSize(25)
self.addSubview(theLetterLabel)
theLetterLabel.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: self.frame.size)
}
【问题讨论】:
-
你能从视图导航器中显示 tableView 的视图层次结构吗?
-
我认为这只是单元格在拖动过程中的正常行为。你实际上并没有失去“T”,你只是看不到它,因为它是白色的。如果您将其设为任何其他颜色,您将在拖动过程中看到它。具有背景颜色的普通标签(未经任何修改的标签)在拖动过程中也会失去颜色。
-
@rdelmar 你是对的。标签保持在原位。那么它失去背景颜色的原因是什么?
-
我不确定。这可能与选择时发生的情况相同,所有背景颜色都设置为清除。
-
@rdelmar 感谢您的帮助。由于您的评论,我找到了解决方法!
标签: ios iphone uitableview swift custom-cell