2015-08-04 4 views
0

До сих пор, чтобы дать иллюзию подсветки мою камеру, когда запись на пленку, он просто реализован tableView:didSelectRowAtIndexPath: так:Подчеркивая обычай UITableViewCell при переопределении DrawRect

tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    tableView.deselectRowAtIndexPath(indexPath, animated: false) 
} 

Теперь я настроить рендеринг contentView моей клетки (contentView-х subview фактически) путем переопределения drawRect. Проблема в том, что мой трюк больше не «делает трюк».

Так я думал о реализации tableView:didHighlightRowAtIndexPath:tableView:didUnhighlightRowAtIndexPath: и так:

override func drawRect(rect: CGRect) { 
    let context: CGContextRef = UIGraphicsGetCurrentContext() 
    let colors: [CGColor]! 
    if isHighlighted { 
     colors = [UIColor.blackColor().CGColor, UIColor(red: 230/255, green: 230/255, blue: 230/255, alpha: 1).CGColor] 
    } else { 
     colors = [UIColor.whiteColor().CGColor, UIColor(red: 230/255, green: 230/255, blue: 230/255, alpha: 1).CGColor] 
    } 

    let rect = self.bounds 

    GraphicHelper.drawLinearGradient(context, rect: rect, colors: colors) 

    let strokeRect = CGRectInset(rect, 1, 1) 
    CGContextSetStrokeColorWithColor(context, UIColor.whiteColor().CGColor) 
    CGContextSetLineWidth(context, 1) 
    CGContextStrokeRect(context, strokeRect) 

    let separatorColor = UIColor(red: 208/255, green: 208/255, blue: 208/255, alpha: 1).CGColor 
    let startPoint = CGPointMake(rect.origin.x, rect.origin.y + rect.size.height - 1) 
    let endPoint = CGPointMake(rect.origin.x + rect.size.width - 1, rect.origin.y + rect.size.height - 1) 
    GraphicHelper.drawStroke(context, startPoint: startPoint, endPoint: endPoint, color: separatorColor, width: 1) 
} 

Это делает трюк, но только на «длинный» кран, который полностью бесполезным, так как он не работает или короткие отводы.

Любые предложения о том, как я мог это сделать?

ответ

0

Моей глупая идея

  1. Помещенные в пользовательских ячейках UIImageView contentview для фона цели. (Установить белое или прозрачное изображение)

  2. В didSelectRowAtIndexPath измените изображение UIImageView и сбросьте последнее выбранное изображение ячеек.

Вы также можете изменить цвет фона.

Смежные вопросы