2013-10-07 3 views
1

Этот код работает в iOS7, но при работе в iOS6 симуляторе ячейки, которые должны быть выше подуровня, будут находиться ниже них.insertSublayer спрячет ячейки в виде таблицы

bgLayer = [BackgroundLayer gradientFromColor:COLOR_MID_GRADIENT to:COLOR_GRADIENT]; 
CGRect bottom = self.view.bounds; 
bottom.origin.y = self.view.bounds.size.height-GRADIENT_HEIGHT; 
bottom.size.height = GRADIENT_HEIGHT; 
bgLayer.frame = bottom; 
[self.view.layer insertSublayer:bgLayer atIndex:1]; 

Что он делает, это установить слой градиента в нижней части представления с помощью таблицы.

Однако клетки в прямоугольнике градиента будут скрыты за ним!

Я попытался изменить индекс, но он ничего не делает. Кроме того, insertSublayer: ниже: тоже не работает.

Что мне не хватает? Как поместить слой под ячейки представления таблицы?

Спасибо.

+0

Сколько слоев уже существует перед вставкой в ​​iOS 6 и iOS 7? – trojanfoe

+0

один, я вставил один indentical наверху. – ullstrm

+0

Откуда вы это знаете? (просто чтобы быть ясным, я спрашиваю, сколько ** уже существует ** в слое ** до ** вашей вставки). – trojanfoe

ответ

0

Вы имеете в виду ниже, как в "позади"? Если это так, установите backgroundView в tableview и измените его по своему усмотрению. (слои, подстанции и т. д.), и он всегда будет отображаться позади ячеек.

+0

Спасибо, я добавлял слои к самому представлению вместо backgroundView таблицыView. – ullstrm

+0

НЕТ! Фоновый вид является статическим и не следует за табличным представлением при прокрутке. Это будет означать, что мои градиенты находятся в статическом положении. Как добавить фактические слои в таблицу? :/ – ullstrm

+0

Правда, это статично. но представление за табличным представлением также статично. Если вы хотите, чтобы он прокручивался с помощью вашего табличного представления, вам нужно создать для этого умное решение. Я бы не добавил представление непосредственно к самому представлению таблицы (кто знает, как tableview управляет его подзонами). – GreatWiz

1

Благодаря trojanfoe я получил указатель в правильном направлении.

Мне удалось заставить его работать с ручным изменением zPosition для конфликтующих слоев. Хотя мне нужно запустить add-code-code в viewDidAppear вместо viewWillAppear для iOS6. Не спрашивайте меня, почему, я предполагаю, что это связано с рендерингом ячеек, происходящих после viewWillAppear.

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