Har*_*nce 5 xcode objective-c uiview ios
(下面的截图有助于解释我想要做的事情)
这背后的想法是,我有一个UIView,UI里面有各种不同的元素,例如,假设我有一个UIView,在里面我们有一个UILabel.
现在我想要复制UIView(带有标签)但不知何故之后,我需要对标签进行更改,例如更改文本属性.
我之所以需要这样的东西是因为我可以UIView用它所需的一切来构建它看起来不错,但实际上有不同的数据与不同的副本.
我不确定这是最好的方法,但它是我唯一能想到的方法.如果有人对如何做到这一点有任何想法,或者对更好的方法有任何想法,我会非常感激.很多!
我个人认为最好的答案是分别创建每个视图并根据需要进行配置.您可以创建一个方法,只是将新的UIViews配置为相同,并通过它传递每个视图.
但是,如果您确实需要复制UIView,则可以将其归档,然后取消归档:
id copyOfView =
[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:originalView]];
UIView *myView = (UIView *)copyOfView;
[self.view addSubview:myView];
Run Code Online (Sandbox Code Playgroud)
如果你有很多这些,请确保你使用仪器时间分析器来检查你的绘图效率.
这是一件非常自然而有用的事情.您正在寻找的是容器视图控制器.将可重用的"单元"放入自己的视图控制器和自己的nib文件中.然后,在父视图控制器中,使用addChildViewController:您可以根据需要添加任意数量的这些控件并配置它们.他们每个人都可以拥有自己的IBOutlets来修改内容.
这非常类似于UITableView和使用的模式UITableViewCell(它没有特别使用"子视图控制器",但确实使用了这种模式).
有关完整的详细信息,请参阅"适用于iOS的View Controller编程指南"中的"创建自定义容器视图控制器".
请注意,Storyboard包含一个"容器视图"作为对象模板中的一个选项,以使其更容易.
如果你想要更低级别的访问权限,你也可以手动使用UINib来加载nib文件并连接它的出口(这就是我们以前在iOS 5之前做过的事情),但今天我会使用子视图控制器.
| 归档时间: |
|
| 查看次数: |
5711 次 |
| 最近记录: |