关于Interface Builder的一点思考

Xcode6提供的Interface Builder,为iOS界面创建提供了许多方便。但是,任何事物都存在两面性,这里对IB提出了几点思考。

一个Storyboard只对应一个UIViewController

这样的好处是显而易见的,权责分明,Storyboard负责界面的绘制,而UIViewController负责逻辑的整理。然而,这也说明了一个Storyboard无法对应多个UIViewController。这意味着如果两个界面基本相似,如果还是采用Storyboard的方式,则还得绘制两套基本相似的界面,对应的控件如果有相似的逻辑则得全部重新操作一遍。

简单的解决方法是把相同的部分以XIB文件的方式绘制为UIView,再在UIViewController中将UIView手动添加进去。虽然这样做还是违背了Storyboard的初衷,但也只能这样做了。

除此之外,Storyboard只能对应一个UIViewController也意味着这个Controller无法在被继承的同时携带Storyboard,就算你想利用父类的逻辑进行新的扩展优化也是无能为力的。

布局约束的使用场景

布局约束对于界面设计来说可谓节约了不少工作。不用特别关心某个控件的具体尺寸,而只关心它以怎样的方式存在于界面中,和其他控件之间的位置关系如何。

以最原始的方式使用布局约束,便是手动敲代码,但Objective-C在这方面可谓极度欠缺便捷性。几个简单的约束逻辑都需要敲上好几十行代码。好在有其他第三方库封装了这些逻辑并以极简的方式提供给开发者使用。IB中当然也提供了约束的设置,并且在设置、查看、重置界面这几个方面来说都寄予了开发者极大的方便。

虽然IB把开发者从繁杂的代码中解放出来,但并不意味着能在各个方面都如此。在维护方面,IB上的约束显然没有那么便捷。试想一下你接手了一个模块,某个Storyboard里的界面到处都是约束,你会作何感想?如果要在此基础上添加或删除控件,很容易又把界面弄得一团糟。

解决方法显然是不要用太复杂的约束,道理和写代码一样。如果界面复杂,说明界面也需要重构,把整个Storyboard里的界面按功能切分,整理为不同的XIB文件。这样的代码对于别人来说,噩梦或许会少一点。

时间: 2024-11-08 10:37:22

关于Interface Builder的一点思考的相关文章

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧 最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过

iOS开发-Interface Builder的前世今生

Interface Builder,是用于苹果公司Mac OS X操作系统的软件开发程序,Xcode套件的一部分,于1988年创立.它的创造者Jean-Marie Hullot自称是“一个热爱旅行.充满激情的摄影师”,本篇分享Hullot热爱技术的那一面——创造Interface Builder的过程. 因势而动 1981年, Jean-Marie Hullot拿到巴黎第十一大学的计算机科学博士资格后,开始了法国国家信息与自动化研究所(INRIA)的研究生活. Jean-Marie Hullot

xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI.应该使用哪种方式来制作UI已经是iOS开发中

Unknown class in Interface Builder file

今天遇到一个问题,每次运行的时候打印出log信息“Unknown class XWHWeiboController in Interface Builder file.” , 意思是在创建用户界面的文件中没有找到XWHWeiboController 这个类.  原因是我创建UITableViewController类的时候,名字写错了,把这个类名直接在文件上修改成XWHWeiboController,并在storyboard文件中,删除自带的sense,使用UITableViewContr创建了

关于后台系统自动生成的一点思考

大量实践发现后台管理程序,其实90%的代码都是相同的,当然是在抛弃复杂逻辑业务的情况下,那么如何能高效的节约这些时间呢,那就是接下来我要说的,对于后台系统自动生成的一些思考. 适用情景: 1.表编号id为自增(基于现在大部分表编号都是自增的情况): 2.没有太复杂业务关联关系,比如表的某一个字段,存储了一个json对象,为了平衡后台用户使用,需要友好的分段展示给用户的定制ui界面:还比如表中存储了外键的多个id,但为了方便用户使用,只能已标签name的方式,给用户展示,等等这些超强业务黏合逻辑的

关于前端的一点思考

关于前端的一点思考 Author:tkorays 最近写前端代码,写着写着就突然开始惆怅.忧伤.愤怒.发狂,我TMD到底在干什么啊! 很多东西写了n遍了,但是还是在不停地写着.自己写过的代码也不想再修改完善.重新利用,只是觉得,可能重新写一遍可能要好点.面对这很多库以及框架,虽然喜爱,但是也是有所顾忌,我只要使用其中的一个功能,根本不需要引入这么大的整个库. 事实上,我们可能在动手写任何代码之前,先要思考下,我们到底要的是什么! 0x00 界面真的需要这么炫酷么 在使用某个界面库之前,我们可能先

Using Interface Builder记录

1.interface builder的作用主要是用来设计视图,文件的拓展名诶.storyboard或者.xib :这两文件的区别是,.xib文件只能设计一个视图控制器,也就只能显示一个视图,.storyboard可以设计多个视图控制器和各个视图之间的转场. 2.xib和.storyboard文件是以xml文件格式保存的,在编译期间,这些文件就会被编译成二进制的.nibs文件 3.在<interface builder help>文件中有更多关于创建.配置.使用,预视,导航线等的说明

提高Interface Builder高效工作的8个技巧

本文转载至 http://www.cocoachina.com/ios/20141106/10151.html iOS开发Interface Builder 本文译自:8 Tips for working effectively with Interface Builder(需FQ) 先来看看目录: 介绍 使view的Size与view中的Content相适应 按住option键—观察所选中view与另外view边缘之间的距离 Editor –> Embed In View, Unembed:

【转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

原文网址:http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式的前世今生.本篇文章将详细介绍如何使用自动布局实现不同屏幕尺寸的适配. 添加自动布局约束(下文简称约束)有以下三种方式: 使用Xcode的Interface Builder界面设计器添加并设置约束 通过代码逐条添加约束 通过可视化格式语言VFL添加约束 本文将以一个简单的例子来演示如何使用这几种方式添加约束,