2010-06-16 4 views
3

У меня есть некоторые проблемы с составлением пользовательского контента по UITableView. Что я сделал подкласс UITableView и перезаписывать - (Недействительными) метод DrawRect что-то вроде этого:Пользовательский чертеж поверх UITableView

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 

    [super drawRect:rect]; 

    CGContextSetRGBFillColor(ctx, 255, 0, 0, 1.0f); 
    CGContextFillRect(ctx, CGRectMake(10, 10, 10, 10)); 
} 

Проблема заключается в том, что я вижу мой красный прямоугольник, но это под вид таблицы ячеек. Даже если я прокомментирую вызов [super drawRect: rect] в методе выше, ячейки будут отображаться.

Я предполагаю, что внутренне любой, кто называет метод drawRect для представления таблицы, рисует ячейки впоследствии, то есть перезаписывать drawRect недостаточно, потому что ячейки всегда будут рисоваться впоследствии.

+0

Возможно, вы должны получить 'CGContextRef' после' [super drawRect: rect]; '? – kpower

+0

Привет, недоумевая, почему вы должны подклассифицировать UITableView, особенно переопределяя метод drawRect. TableView очень настраиваемый. – RickiG

+0

@kpower - Это не работает. Кроме того, как я уже сказал, если я полностью удалю вызов [super drawRect: rect], мои ячейки все еще рисуют. @RickiG Я хочу добавить функцию привязки к UITableView. В таблице есть «маркер» где-то, и после того, как вы перетащите таблицу и отпустите палец, таблица автоматически выровнят маркер с ближайшей ячейкой (просто поставьте, я делаю горизонтальный подборщик). Мне нужно изображение переднего плана, чтобы нарисовать «маркер» привязки. –

ответ

1

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

Можно создать кадр для вашего нового UIImageView и указать координаты x/y.

[self.view addSubView:myView];