HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在以编程方式创建的UIView层次结构之上添加子视图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UIView子类,它以编程方式创建并添加了许多子视图.但是,我想让类的用户能够使用addSubview在其上放置新的子视图(及其子视图),理想情况下也可以在Interface Builder中.

做这个的最好方式是什么?

现在,我想只使用addSubview以编程方式添加视图是可以接受的,但我不确定如何进行此操作.

注意:我尝试使用界面构建器添加其他子视图,但是一旦我上面提到的自定义UIView子类以编程方式创建其他视图,它们就会被隐藏,大概是因为它们最后添加了.

解决方法

只需将通用UIView拖到Interface Builder中的nib中,并将其类设置为自定义子类.您仍然可以使用简单的旧UIView完成所有操作,包括拖放子视图.

您将无法在Interface Builder中看到自定义子视图的实际外观;它只是一个灰色矩形.您可以(我认为)在Xcode 3中使用IB插件完成此操作,但是,至少在目前,Xcode 4不支持此类插件.

编辑:

解决OP的后续行动,您需要以编程方式管理z排序.可能最简单的方法是将代码保持原样,但不要执行以下操作:

UIView *mySubview1 = ...;
UIView *mySubview2 = ...;
UIView *mysubview3 = ...;
[self addSubview:mySubview1];
[self addSubview:mySubview2];
[self addsubview:mySubview3];

(正如您所指出的那样,可能会将子视图叠加在用户的子视图之上)

做类似的事情:

UIView *container = [[UIView alloc] initWithFrame:[self bounds]];
UIView *mySubview1 = ...;
UIView *mySubview2 = ...;
UIView *mysubview3 = ...;
[container addSubview:mySubview1];
[container addSubview:mySubview2];
[container addsubview:mySubview3];
[self addSubview:container];
[self sendSubviewToBACk:container];
[container release];

您也可以使用[self insertSubview:container aTindex:0]但我认为在快速浏览代码期间添加和移动到后面会更清晰一些.

最终结果是您不必弄乱子视图的现有z排序;通过将它们放在一个易于管理的单个容器中,您可以将整个集合移动到子视图层次结构中的任何位置.

大佬总结

以上是大佬教程为你收集整理的ios – 在以编程方式创建的UIView层次结构之上添加子视图全部内容,希望文章能够帮你解决ios – 在以编程方式创建的UIView层次结构之上添加子视图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。