objective-c - 以编程方式重新使用 IBOutlet

标签 objective-c ios cocoa uiview iboutlet

我在 IB 中创建了一个带有一些标签和自定义颜色的 UIView,并将其链接为 IBOutlet,以便我可以在我的 viewController 中访问它。

@property (strong, nonatomic) IBOutlet UIView *tile;

尽管我想在一个循环中创建更多这样的 socket :

- (void)viewDidLoad {
    [super viewDidLoad];
    int i = 0;
    while (i <= 9) {
        UIView *cTile = [self.tile copy];
        [self.view addSubview:cTile];
        i += 1;
    }
}

所以我试图复制这个 tile 导出,然后将复制的 View 添加到主视图。 显然这无法完成并返回错误。

是否有可能实现这种行为并重用/复制 IBOutlet?

最佳答案

我不认为你想做的是可能的,因为 UIView 不符合 NSCopying 协议(protocol)。

最好的办法是将您的“tile”创建为 UIView 子类或为其创建一个 nib,然后您可以根据需要多次重新加载它。

关于objective-c - 以编程方式重新使用 IBOutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187342/

相关文章:

iPhone 键盘在进入时隐藏了一个 UITextView?

ios - 在 collectionViewCell 中使用 UIPageViewController

objective-c - NSDocument 和键盘(如 keyDown)

ios - 在 Xcode 中使用多个 Storyboard

python - 使用 Flask 提供 .mp4 文件并在 Objective-C 应用程序上播放会导致管道损坏且无法播放

ios - 制作视频时显示录制计时器

objective-c - 为 NSMutableArray 分配浮点值

ios - 带有 UITextView 的 UIView 随 UIScrollView 的 dismiss interactive 一起移动

cocoa - 如何创建 OS X .color 调色板文件?

objective-c - 从 TableViewController 到 NavController 中嵌入的第二个 TVC 的 performSegueWithIdentifier 不起作用