首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS:如何有效地统一不同应用程序页面上的字体系列和大小?

iOS:如何有效地统一不同应用程序页面上的字体系列和大小?
EN

Stack Overflow用户
提问于 2017-01-25 07:03:13
回答 1查看 250关注 0票数 2

我正在使用Swift构建一个iOS应用程序。在每个应用程序页面上,我们都有用于不同目的的文本标签。例如,标题的文本标签,描述的文本标签。我们需要为每一类目的统一文本的外观。

我可以在界面生成器中统一它们的外观,比如所有文本标题,将字体系列设置为"Helvetica Nueue",字体大小设置为"15“。但是,当我们的设计师更改字体系列和大小时,我们必须手动修改每个标签设置,这是非常低效的。

解决此问题的直接方法是,将字体系列和大小定义为实用程序类中的常量,然后在后面的代码中,在加载应用程序页面后设置所有文本样式。在这种情况下,当有任何变化时,我们只需要更新实用程序类中的常量。然而,这需要我们从界面构建器中为代码中的每个文本标签添加引用,这也需要大量的工作,而且效率不够高。

有没有更好的主意来巧妙而高效地做这件事?感谢您的建议!

EN

回答 1

Stack Overflow用户

发布于 2017-01-25 07:23:16

这是一个想法:

  • 为每个不同的标签/文本字段/文本视图/...定义一组UIView tag
  • 然后在界面生成器中设置UI标签/文本字段/文本视图/...一种近似的风格,这样你就能对事物的外观和大小有一个很好的感觉。而且还要设置与定义的适当样式匹配的tag值。
  • 与设计人员坐下来定义未来的验证粒度。我的意思是,两个品牌现在可以有相同的风格,但实际上(或可能在可预见的未来)被设计师认为是不同的;因此,使用的相同样式可以只是一个'coincidence'.
  • Subsequently创建一个定义这些样式的模块。该模块中的
  • 创建一个遍历视图层次结构的方法,并根据您分配的tag值设置适当的样式。
  • 如果您想设置不同的UI元素类型(例如,UILabelUITextFieldUIButton)的样式,最有可能的做法是为每种类型使用不同的tag范围,因为它们很可能在某个时刻被designers.
  • In代码视为不同的类型。您所要做的就是为每个顶级视图调用上面的方法,例如在viewWillAppear中,...取决于您处理的是视图控制器、表格视图单元格、自定义视图...

我希望这对你有所帮助,或者给你一些方向,让你找到一个适合你的需求和喜好的解决方案。

其他想法:

  • 为每个可预见的标签样式创建一个子类,您可以在其中设置所需的所有属性。界面生成器中的
  • 将UI元素的类型更改为其相应子类的类型。

或者,一个组合:

  • 为您需要设置样式的每个UI元素类型创建一个子类。IB中的
  • 如上所述更改类型。IB中的
  • tag设置为选择特定样式。
  • 这样,您就不必再有“许多”子类来保存和设置一种样式。
  • 这将把所有样式(每个UI元素类型)放在一个文件中,便于比较和更新。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41840546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档