gpt4 book ai didi

iOS 创建可重用 View 的问题

转载 作者:可可西里 更新时间:2023-11-01 05:09:42 25 4
gpt4 key购买 nike

我正在尝试使用 nib 和附带的 .h/.m 文件创建自定义 View ,然后通过 IB 创建该 View 的多个实例,并将它们用作另一个 View 的 subview 。

  1. 我创建了 .h/.m 文件
  2. 我创建了 xib。
  3. 对于 xib,我在 IB 中指定类名。
  4. 向 xib 添加一些标签(其值将以编程方式更改)
  5. 我将 Storyboard中的一个简单 View 拖到我的容器 View 中。
  6. 我将拖动 View 的类设置为我为 xib 指定的类。

我多次执行第 5 步和第 6 步,每个 View 一次。最终我会将这些 View 连接到父 View 类上的 IBOutlets。

显然我做错了什么,因为我没有在自定义 View 中看到我的标签。我怀疑我需要将 Nib 直接与 View 相关联,就像您对集合/ TableView 所做的那样,但我还没有找到在哪里可以做到这一点。

正确的做法是什么?我想我可以通过编程方式添加 View ,但是我该如何处理各种设备的布局(例如 iphone 4 与 5)?

最佳答案

我在下面概述的似乎有效

1) 为您的自定义 View 创建 xib 和 .h/.m 文件。
1a) 假设您需要 IBOutlets 来查看您想要控制的元素,在身份检查器中为 File's Owner 提供在您的 .h 文件中定义的类名。

2) 在.h文件中定义一个属性

@property (nonatomic, retain) IBOutlet UIView *contentView;

2a) 为 xib 中的所有 subview 定义导出,您希望对其进行编程访问。

3) 在.m文件中合成属性并执行

- (void)awakeFromNib
{
NSLog(@"awake from nib");
[[NSBundle mainBundle] loadNibNamed:@"yourNibName" owner:self options:nil];
[self addSubview:self.contentView];
}

4) 将调色板中的空 View 拖到 Storyboard 中的容器中。改变类(class)将这些 View 添加到您的 .h 文件中定义的类名。

当您运行您的应用程序时,您应该会在您的 subview 中看到 xib 的内容。

5) 您现在可以在容器 View 的 .h 文件中为您的自定义 subview 实例定义导出,并像往常一样在 Storyboard中连接它们。

关于iOS 创建可重用 View 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14450426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com