菜鸟教程小白 发表于 2022-12-12 22:29:15

ios - 如何将 UIView 复制到另一个


                                            <p><p>我的意图是创建一个带有当前 ControllerView 的一些控件(按钮、标签等)的新 ViewController 。 </p>

<pre><code>//Get all the controls
NSArray* array =[init];
   array=;

for(int i =0 ;i&lt;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]
查看完整版本: ios - 如何将 UIView 复制到另一个