Да,
вы сможете реализовать это через Quartz Core, используя слои (см. Документацию по классу CALayer). Действительно, у вас могут быть иерархии слоев. По сути, вы связываете каждый UIView с другим слоем, затем слои визуализируются вместе, образуя один составной слой. Кроме того, вы также можете применять преобразования и анимацию к слоям.
Вам нужно импортировать заголовок QuartzCore и сделать что-то вроде
#import <QuartzCore/QuartzCore.h>
UIView *myView = [[UIView alloc] initWithFrame...
UIView *openGLView = [UIView alloc] initWithFrame...
CaLayer *myViewLayer = myView.layer;
[myViewLayer addSubLayer: openGLView.layer];
Затем, когда на экране появляется myView, все подслои объединяются и отображаются на экране. Что происходит, так это то, что каждое представление визуализирует свой слой, в то время как myViewLayer визуализируется, объединяя два слоя.
Вы можете иметь столько слоев, сколько захотите. Вы можете создать произвольную иерархию, используя методы CALayer
- addSublayer:
- removeFromSuperlayer
- insertSublayer: atIndex:
- insertSublayer: ниже:
- insertSublayer: выше:
- заменить Subublayer: на: