2017-02-06 23 views
0

У меня есть заголовок прозрачного раздела в UITableView, который должен позволять клеткам прокручиваться позади него, но показывать фоновое изображение, которое находится за табличным представлением вместо ячеек. Мне нужен способ применить какую-то обтравочную маску к заголовку раздела, который сделает любые виды, которые становятся прозрачными, или что-то, что отображает соответствующую часть фонового изображения в качестве фона заголовка и следует при перемещении заголовка.Маска всех представлений ниже UIView, за исключением фона

Я видел это How to mask UITableViewCells underneath a UITableView Transparent Header, но он не совсем так рекламируется, и, как правило, это плохая реализация.

Я также попытался это:

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); 
    CGContextFillRect(context, self.frame); 
    CGContextSetBlendMode(context, kCGBlendModeClear); 
} 

в подклассе заголовка раздела, но это только показывает вид с черным фоном.

Если вам нужно больше объяснений, вот что у меня есть:

http://imgur.com/a/YM5Us

и вот что я хочу добиться:

http://imgur.com/a/o9CgL

+0

Две вещи поражают меня по этому вопросу. Первая из них заключается в том, что у вас, вероятно, неправильная иерархия просмотров. Во-вторых, похоже, что вы пытаетесь сделать какой-то продвинутый рисунок в UIKit, где вы, вероятно, должны использовать SpriteKit или что-то в этом роде. Мне не нравится ваш подход, пытаясь замаскировать другие взгляды между ними, чтобы пройти фоновое шоу. Вероятно, лучше взять фоновое изображение и снова поместить его за плавающее представление, возможно, компенсируя его с помощью границ. Изучите разницу между манипулированием рамкой и границами. – rage

+0

Возможно, мне следовало бы объяснить это лучше: проблема связана с прозрачным заголовком раздела в UITableView, который должен позволять клеткам прокручиваться под ним, но показывать фон вместо ячеек. Я добавлю эту информацию в исходный вопрос для уточнения. – damjandd

+1

Хорошо, тогда я пошел бы с моим предложением: снова возьмите фоновое изображение, примените его к заголовку заголовка раздела и сметите его с помощью границ. – rage

ответ

0

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

Вы можете смешивать SpriteKit с UIKit, но используя SpriteKit в качестве фона & не так, как вам нужно, поскольку SKView не может иметь прозрачный фон.

На мой взгляд, вы должны здесь create a custom header view или до change the displaying of the cell.

+0

Я уже использую настраиваемый заголовок, это не проблема. Кроме того, в том числе SpriteKit просто для этого не очень хорошо. Если вам нужна дополнительная информация о проблеме, см. Gifs, которые я теперь применил к исходному вопросу. – damjandd