您如何在iOS项目中管理视图标签? [关闭]

问题描述 投票:1回答:1

我有一个iOS应用,该应用使用了一些包含很多元素的viewcontrollers。我在界面构建器(在情节提要中)中构建了视图控制器。对于某些关键元素(登录按钮,重要文本等),我创建了一个IBOutlet以便能够在代码中使用这些元素(主要是调整文本/图形)。对于其他一些我只需要快速解决的问题(例如,以编程方式显示和隐藏的活动指示器),我选择不创建IBOutlet,而是给他们提供标签号并通过viewWithTag:(NSInteger)方法访问它们。

这似乎对我有用(这只是我的第二个iOS项目,因此执行此操作可能完全错误)。但是,既然视图控制器变得更加复杂,我发现很难记住已经用于标签的数字了。除了遍历所有元素并检查其标签之外,还有什么方法可以保持跟踪?

也许以这种方式使用标签是完全错误的,在这种情况下也可以。我可以一次全部查看它们,然后为现在使用标签的所有情况创建IBOutlets。

ios objective-c uistoryboard
1个回答
5
投票

我会尽量避免使用view tags

通过使用propertiesdata models而不是标签,总是有其他(几乎总是更好)的方法来做完全相同的事情。

[这是我发现的文章,上面有一些很好的例子说明为什么它们不是一个好主意... http://doing-it-wrong.mikeweller.com/2012/08/youre-doing-it-wrong-4-uiview.html

如果需要访问UI元素,则在需要它的类的界面中为其创建一个IBOutlet

或者,如果有多个相同的元素,则可以创建IBOutletCollection,它只是一个包含所有与其链接的元素的数组。

编辑

对于现在绊脚石的任何人。这是前苹果工程师的文章,解释了为什么使用标签不仅是代码的味道和不良做法,而且还是性能问题。

https://www.fadel.io/blog/posts/ios-performance-tips-you-probably-didnt-know/

© www.soinside.com 2019 - 2024. All rights reserved.