UIScrollView внутри CALayer - PullRequest
       8

UIScrollView внутри CALayer

0 голосов
/ 15 декабря 2010

Я разрабатываю какую-то карточную игру, в которой все мои объекты (карты и т. Д.) - это CALayers.Эти объекты добавляются в качестве подслоев mainBoard (CALayer), который, в свою очередь, является подуровнем свойства [UIView layer] моего mainView.Все в порядке, я могу выполнить проверку нажатия, чтобы проверить, к какому слою прикасается обратный вызов touchesBegan:withEvent: класса mainView и т. Д.

Однако мне нужно иметь прокрутку внутри моегоmainBoard, чтобы показать "большие" CALayers, поэтому я попытался сначала добавить "больший" CALayer в CAScrollLayer, но я заметил, что CAScrollLayer на самом деле не прокручивается (не обрабатывает ввод пользователя, не рисует полосы прокрутки)).Таким образом, обходной путь должен был бы добавить UIScrollView непосредственно к mainView UIView.UIScrollView прекрасно прокручивается, пока я не попытаюсь добавить к нему «больший» слой, используя [scrollView.layer addSublayer:<bigger layer>].

Кто-нибудь знает, как я могу иметь «прокручиваемые» объекты внутри CALayer?

Спасибо!

1 Ответ

0 голосов
/ 20 января 2011

nacho4d указал ответ на мой вопрос. Отвечая на отметку: «больший» слой (слой, границы которого больше области, доступной на экране (и поэтому должен содержаться в прокручиваемой области)).

Решением было сначала обернуть «больший» слой в UIView:

UIView *wrapperView = ...
[wrapperView.layer addSublayer:<bigger_layer>];

после этого я могу добавить представление как подпредставление UIScrollview:

[<uiscrollview> addSubview:wrapperView];

// set up scrolling properties
<uiscrollview>.contentSize = <bigger_layer>.frame.size;

Проблема заключалась в том, что я пытался добавить «больший» слой в качестве подслоя UIScrollview напрямую, вместо этого, оборачивая его в UIView и добавляя его как подвид.

Спасибо

...