最近随着 iOS 6 和 iPhone 5 的发布,屏幕尺寸有所不同,我从设计师和开发人员的角度对 UI 定制有一些想法,并有一些疑问。尤其是阅读后:
http://www.raywenderlich.com/21703/user-interface-customization-in-ios-6
我的主要疑问如下。
1. UI 定制与 iOS 设计指南和用户友好性
iOS 有自己的标准/默认 UI 设计(例如警报视图、按钮、标签栏等),它们都或多或少有自定义的能力,但它们也有可以自定义的限制,例如,你可以更改某些 UI 元素的色调颜色,但不是完整的纯色背景颜色或背景图像,我知道其中一些在 iOS 6 中已更改。
我相信 Apple 在设计 UI 时,会努力让它变得用户友好,比如每个标准 UI 组件的大小,它们之间的距离(用于界面构建器),bla bla ...
问题 1,在不违反 iOS 设计指南的情况下,我可以在尺寸和颜色(可能还有形状)方面自定义多少,以保持一定程度的用户友好性?例如,我的一个应用程序使用较小(即不太高)的标签栏,以便在一个屏幕上显示更多内容,并且标签栏的背景也是自定义的,具有实心的标签栏主体和小阴影标签栏的顶部。
2. UI 定制 vs 技术限制
一些 UI 自定义是简单可行的,而有些则需要一些变通方法甚至破解,而其余的则根本不可能。
让我使用之前的标签栏示例,如果我只是使用较小的标签栏(即设置标签栏高度更小),我在 iOS 6 中没有尝试过,但在所有以前的版本中,我只会看到一个黑色区域在标签栏上方,对于标准高度标签栏的空间,我需要以编程方式更改视图的大小以填充该区域,这需要一些时间来实现和测试;此外,在 iPhone 5 中更改屏幕尺寸也是一个麻烦,因为使用手动尺寸设置而不是自动调整大小。当导航栏设置为非标准尺寸时也会发生这种情况。
那么问题2:在设计UI时我应该考虑什么,以确保设计的技术实现能够面向未来,从表面上我可以直接看到两点:自定义颜色但不要改变组件的大小,如果该组件有标准尺寸并且不能轻易更改。
3. 技术上的未来证明
可以有不止一种方法来实现某些东西,而其中一些是面向未来的,而另一些则不是。
让我以导航栏为例,我们使用了一个非标准尺寸的导航栏,它有一些额外的按钮,比如说它是 80pt 高,那么我们必须在每个视图控制器中创建一个保持视图,并将其他视图作为子视图在holding view中,holding view的frame从36开始为(80-standard 44)=36,这在创建新的view controller时需要做很多工作,因为我们必须处理用户打电话的情况并且状态栏被扩展。
问题 3:我们应该坚持使用 iOS SDK 并且不应该超出它允许的范围,这是否正确(或应该强制)?例如,当您滚动 UIWebView 时,当您将其滚动到负数或超过内容大小的偏移量时,您会看到一些暗影,为了将其移除,您必须遍历 UIWebView 中的所有子视图并移除 UIImageView,如描述于:
这可行,但看起来显然不太好,所以我们是否应该避免所有这些自定义,并在进行 UI 设计时牢记这些?
很抱歉这篇冗长的帖子,但如果有人能回答甚至讨论这些问题,我们将不胜感激。