ios - 如何将 UIView 复制到另一个
<p><p>我的意图是创建一个带有当前 ControllerView 的一些控件(按钮、标签等)的新 ViewController 。 </p>
<pre><code>//Get all the controls
NSArray* array =[init];
array=;
for(int i =0 ;i<array.count ;i++)
{
// UIView *subview = (UIView *);
UIView *subview =(UIView *) ;
..
;
}
</code></pre>
<p>但我发现,当新的 viewcontrollerView 关闭所有父控件的控件时,它们也会消失。如何将 UIView * 对象复制到另一个对象?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您不能复制 UIView,它没有实现复制协议(protocol)。但是您可以轻松地创建一个创建新 View 的方法,然后创建所有 subview 的新实例并将它们设置为旧 View 。</p>
<p>类似:</p>
<pre><code>@interface UIView (Copy)
- (UIView*)newDuplicate;
@end
@implementation UIView (Copy)
- (UIView*)newDuplicate {
UIView *v = [[ alloc] initWithFrame:self.frame];
v.autoresizingMask = self.autoresizingMask;
for (UIView *v1 in self.subviews) {
UIView *v2 = [[ alloc] initWithFrame:v1.frame];
v2.autoresizingMask = v1.autoresizingMask;
;
}
return v;
}
@end
</code></pre>
<p>但这不会复制 View 的所有属性,也不是一个完美的解决方案。
您应该在要复制的 View 上实现类似的功能。</p></p>
<p style="font-size: 20px;">关于ios - 如何将 UIView 复制到另一个,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/12002826/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/12002826/
</a>
</p>
页:
[1]