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