我想了一个办法,有一个UIView表现自己到另一个UIView的以及第一个。 所以,我有我与它的边界主要的UIView,和UIView的也使得自己在其他一些UIView的。
这可能吗 ? 是否需要大量的层操作?
我想了一个办法,有一个UIView表现自己到另一个UIView的以及第一个。 所以,我有我与它的边界主要的UIView,和UIView的也使得自己在其他一些UIView的。
这可能吗 ? 是否需要大量的层操作?
不知道什么是你真正的意图是,但是这将绘制视图的两倍,用户交互等,不会对第二视图中工作。 另外这个解决方案并不需要不同的帧大小的照顾。
要克隆视图的头
@interface SrcView : UIView
@property(nonatomic, readonly, strong) UIView *cloneView;
@end
@interface CloneView : UIView
@property(nonatomic, weak) UIView *srcView;
- (id)initWithView:(UIView *)src;
@end
实施要克隆的视图
#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
现在你可以叫cloneView并添加它的地方你想要的。
这似乎是在这里StackOverflow上一个经常问到的问题。 例如:
iphone,ipad的重复的UIView -克隆查看
复制一个的UIView到另一所绘制的内容
UIView的复制
复制,克隆或复制的UIView
但是,如果是我这样做,我的第一个办法是得到一个句柄UIView
我要复制,然后递归遍历所有的subviews
中,然后复制和其添加为子视图到UIView
我想要复制的主UIView的进入。
我无法想象有太多的层操作这个事,但你可能会需要弄清楚如何以编程方式重新建立网点和/或行动。
有没有简单的方法来克隆一个视图,然后通过一行代码更新两个视图。 由于其内在的CALayers是不同的。 但对于复制一个UIView,这里是你可以用一种新的方法:使用的UIView的方法:
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
这是画一个图的最快方式。 可在iOS的7。
创建“克隆”了UIView的另一个实例您希望并将其添加为一个子视图到其他视图。 你不是真的克隆一个UIView 对象 ,只需创建它的另一个实例。