Я вижу, что этот вопрос задавался давно, и вы, вероятно, уже нашли решение, но я наткнулся на ту же проблему и нашел решение и решил, что я должен опубликовать его для дальнейшего использования. Нет смысла в том, что более чем у одного человека болит голова от одного и того же:)
Сначала вы должны создать подкласс для любого вида, в который хотите переместить UIColor. Так что в этом случае, UITableViewCell
.
.. Наконец, используйте этот код в методе drawRect:
для смещения источника. И все готово!
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGSize phase = CGSizeMake(0, self.bounds.size.height); // CHANGE THESE VALUES TO WHATEVER X/Y SHIFT YOU NEED
CGContextSetPatternPhase(context, phase);
CGColorRef color = self.backgroundColor.CGColor;
CGContextSetFillColorWithColor(context, color);
CGContextFillRect(context, self.bounds);
CGContextRestoreGState(context);
Сдвиг работает путем смещения начала координат на значения ширины и высоты «фазы».
Надеюсь, это поможет! (Не забудьте [super drawRect:]
!)