Objective-C iOS纯代码布局 一堆代码可以放那里!bwin亚洲必赢5566手机版

前言:

多年来写的篇章都是创业类,好啊,明天美好写写技术类的稿子!

不过分享的不是IOS相关的小说,终归这几天在速成IOS,看的是objective-c,由于速成的火速,好累!

好在近来为主已经入了点门道了,那才看的懂新人的代码,才能提前感受代码风险。

对此IOS的高功效口诀,回头再享受,明日先分享一个简便的空洞封装!

1:先看看难点

表明:平常对于界面布局,有编制代码、Xib、Storyboard二种艺术,而自我看看新人写的,是由此代码布局的。

来看的代码是如此的:

A:编写UI的代码已分别到新的类(.h
.m文件)去,但依旧依然留给了不少代码在ViewController中。

图1:(在页加载完后,调用了SetView方法,然后SetView方法里一堆和UI相关的代码)

bwin亚洲必赢5566手机版 1

图2:

bwin亚洲必赢5566手机版 2

2:想想怎么优化

对象:让各种Controller都有一个遥相呼应的View的UI类,而Controller类里不要涉及UI创造的题材,尽量0凌犯。

折腾进度:

这几天学了下ObjectC的恢宏类Category,觉的那东东有些搞头。(和C#里的扩大类很像,但差其余是,object-C里扩大方法可以在基类里调到,那很神奇)

可惜扩大类不扶助属性,没法把有些变量放到伸张类的习性里,逼的要入侵Controller。

于是自个儿又构思,折衷一下,用泛型定义一个共性的UIView,以规避侵袭。

bwin亚洲必赢5566手机版 3

结果要么失利了,objective-C的泛型不扶助子类定义类型,唉~~~~

发现在C#自在化解的事,在object-c里不便于呀!!!

3:二次折衷的法子:

1:定义Controller的基类,定义一个艺术,并在页面加载时调用。

bwin亚洲必赢5566手机版 4

2:假使有LoginController,新建一个LoginView,继承自UIView

bwin亚洲必赢5566手机版 5

 

3:一些UI相关的概念变量就写在此地了(.h文件)

bwin亚洲必赢5566手机版 6

 

4:在LoginView添加一个扩充类(不用新建类文件了,直接扩展代码就好了):

 那里增加了一个方式叫initUI(等于重写基类的措施)

bwin亚洲必赢5566手机版 7

 5:那里就是唯一二次折衷的地方,必要入侵Controller.h,定义一个UI属性。

(从前是想通过把这一个本性定义到基类去,可惜泛型不支持子类指定项目)

bwin亚洲必赢5566手机版 8

6:接下去就是写你的UI相关的代码了。

bwin亚洲必赢5566手机版 9

总结:

1:手工写的代码的可视化,在调节阶段才能看到,那是很悲催的结果。

2:个人不太提出手工布局代码的,开发功能也是个难题(当然你可以经过包装一些UI代码进一步进步下效能)。

3:不知情XCode没有折叠.h文件到.m文件下的插件呢?文件太多,切来切去太伤眼了。