Ale*_*one 14 iphone quartz-graphics uiview ios
我正在考虑让UIView渲染到另一个UIView以及第一个UIView的方法.所以我有我的主UIView它的界限,而UIView也在其他一些UIView中呈现.
这可能吗 ?它需要大量的层操作吗?
Jon*_*hon 15
不知道你的真实意图是什么,但这会画两次视图,用户交互等不会对第二个视图起作用.此解决方案也不考虑不同的框架尺寸.
要克隆的视图的标题
@interface SrcView : UIView
@property(nonatomic, readonly, strong) UIView *cloneView;
@end
@interface CloneView : UIView
@property(nonatomic, weak) UIView *srcView;
- (id)initWithView:(UIView *)src;
@end
Run Code Online (Sandbox Code Playgroud)
要实现要克隆的视图
#import "SrcView.h"
#import "CloneView.h"
@implementation SrcView
@synthesize cloneView;
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{
[cloneView setNeedsDisplay];
}
- (UIView *)cloneView {
if (!cloneView) {
cloneView = [[CloneView alloc] initWithView:self];
}
return cloneView;
}
@end
@implementation CloneView
@synthesize srcView;
- (id)initWithView:(UIView *)src {
self = [super initWithFrame:src.frame];
if (self) {
srcView = src;
}
return self;
}
- (void)drawRect:(CGRect)rect
{
[srcView.layer renderInContext:UIGraphicsGetCurrentContext()];
}
@end
Run Code Online (Sandbox Code Playgroud)
现在你可以调用cloneView并将其添加到你想要的地方.
这似乎是StackOverflow上常见的问题.例如:
但如果是我这样做,我的第一种方法是获取UIView我想要复制的句柄,然后递归迭代所有subviews它,然后复制并将它们作为子视图添加到UIView我想要将主UIView复制到.
我无法想象有太多的层操作正在进行中,但您可能需要弄清楚如何以编程方式重新建立出口和/或操作.
| 归档时间: |
|
| 查看次数: |
17663 次 |
| 最近记录: |