IOS开发学习笔记(三)

ios项目模板全都默认使用.xib扩展名,但最初所有的界面构建器文件都使用.nib扩展名。

界面的实现三种方式:storyBorad、xib、纯代码;
storyBorad:由一组或多组相对应的视图和控制器构成;由场景(Sence)和过渡(segue)组成;缺点是多人开发时容易冲突,多使用xib;
Assets.xcassets目前,创建项目自动生成的资源目录,用来管理应用图标及其他图片;但Xode显示的是点数尺寸,而不是像素尺寸。这里的点数是指屏幕上的特殊尺寸。如:2x表示一点就是一个2x2像素的小格子;
3种分辨率:
资源分辨率:也就是资源图片的大小,单位是像素px
设计分辨率:逻辑上的屏幕大小,单位是 点pt;
屏幕分辨就:以像素为单位的屏幕大小;

  • 用户界面控件共有三种基本模式:活跃、静态和被动

*控件的设置属性:
Hidden:是否可见
Clip Subviews:若视图包含一个子视图,且这个子视图完全包含在父视图中,则该选项用于决定子视力的绘制方式;若选中,那么只有位于父控件内部的子视图部分会被绘制出来;若不先,子视图会完全绘制出来,不管有没有在父视图内部;

可拉伸图像;在.xcassets资源目录中,可直接编辑图像;类似android中的.9.png;可只拉伸边缘部分(边缘图像),在Xcode5.0前只能使用代码拉伸,之后可使用工具直接拉伸;在.xcassets面板中选择右下角的Show Slicing按钮即可进行拉伸编辑模式;

*调整图像视图的大小:一般最好在运行前就做好缩放工作,因为运行时进行图像缩放需要消耗一些时间和处理器周期。
控制面板属性:
View->Interaction: User Interaction Enable:用于控制否能进行交互;
View->Interaction: Multiple Touch:是否能够接收多点触控,支持复杂的手持操作
View->Interaction: Drawing:
Opaque:默认选中,相当于告诉ios当前视图的背后没有需要绘制的内容,同时允许ios的绘图方式通过一些优化来加速当前视图的控制。
Hidden:是否隐藏
Clears Graphics Context:基本不选中,若选中,ios会在实际绘制对象前使用透明的黑色(#00000000)绘制被对象覆盖的所在区域。
Clip Subviews:若你的视图包含子视图,并且这些子视图没有完全包含在其父控件的边界内,那么这个复选框的值可以决定子视图的绘制方式,若选中,则只有父控制内部的部分会绘制出来。
Autoresize Subviews:在当前视图大小发生变化时自动调整子视图的大小;默认选中。
TextField:
Placeholder:占位符,可在输入一些文本,文本框的内容为空时,placeholder的内容会以灰色文本显示在文本框中。同android中的hint;
Clear Button:设置何时出现清除按钮;
Clear When editing begins:指定触摸此字段时是否清除已有的文本;
Adjust to Fit:可指定显示文本是否应随文本框的尺寸变化而变化;
Capitalisation Words:每个输入的单词首字母大写;
Auto-enable Return Key:若选中,在文本框为空时禁用return键;
Secure:是否显示已输入的字符;

弹出框:UIActionSheet,从底部弹出
对话框:UIAlertView,屏幕中间弹出
[在ios8都已过时,使用UIAlertController代替];
创建后调用下面方法显示:
[self presentViewController:alert animated:YES completion:]

建立约束:类似android中的layout的对齐及依靠方式;
Editor->Size to FitContent:将图像在视图的大小自动调整到与其中的图像完全一一致。

+屏幕旋转:
iPhone屏幕规格:4、4s都个320*480个点,5、5s是568个点,iPad是768*1024个点,状态栏是20个点。在早期 的iPhoe上点和像素是等价的,一个点就是一个像素。后随分辨率的提高,一个点的对应的像素也不一样,最新的iPhone是一个点代表4个点。
在Deployment Info中的Device Orientation中设置app可支持的屏幕方向。这是设置的是所有View支持的方向。
在storyboard上设定好控件后,一次选中所有控件在Editor->Resolve Auto Layout Issues->Add Missing Constraints即可对选中的控件添加约束,保证在屏幕旋转等情况下保持位置固定。

 # pragma mark 设置当前view可支持的屏幕方向
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationLandscapeRight;
}
#pragma mark 当屏幕旋转时调用
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    //此方法中用于在屏幕方向改变后重新绘制控件新位置
}
- (void)viewDidLoad {
    [super viewDidLoad];
    //在视图加载完成后,取出屏幕初始方向
    UIApplication *app=[UIApplication sharedApplication];
    UIInterfaceOrientation *orientation = app.statusBarOrientation;
    //根据初始方向处理屏幕控件
}

+视图切换 +页面跳转
使用View Switcher
根控制器:是用户看到的第一个控制器,负责管理当前向用户显示哪个视图。通常是UINavigationControllerUITabBarController的一个实例,也可是UIViewController的自定义子类。
** 另外还有:
UIPageViewController: 呈现电子书导航风格的控制器;
UISplitViewController:可以把屏幕分割成几块的视图控制器,主要用于Ipad屏幕设计;
UIPopoverController:浮动框;
在多视图应用中,每个视图控制器控制一个内容视图,应用的用户界面就是在这个内容视图中构建的。这样的组合的storyboard中被称为场景(sence)。每个sence都是同个视图控制器和(UIViewController)一个内容视图(UIView)构成。
a.分别创建两个UIViewController的子类;
b.在storyboard中创建两个View Controller并设置其Custom Class为对应的类;
c.设置创建的view Controller的Identity->Story board Id的值(字符串),并勾选Use Storyboard ID;
d.在根控制器中创建要切换的控制器的实例

instancetype 类型:可使那些非关联返回类型的方法返回所在类的类型!(不用转换类型)
与id类型区别:
相同点:都可以作为方法的返回类型
不同点:instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;instancetype只能作为返回值,不能像id那样作为参数;instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型.(ARC下)

assign,strong,weak区别及使用场景:
assign: 用于非指针变量;如基础类型;
weak:新版本的assign,弱引用 ,一般UI控件用weak
strong:强引用,一般的变量使用;

在.h和.m文件中创建方法的区别
在.h中的方法和成员默认是protect的,外部可通过对象访问;
在.m中的方法和成员都是私有的,外部都无法访问;

用直接访问变量和用self.访问变量的区别
_a = b;是直接给成员_a进行赋值;
self.a = b;是调用的定义的setA的方法;封装性更好,而且对应使用的copy,retain等属性才能保证原来的set方法;(应该使用该种方式)

博客地址:IOS开发学习笔记(三)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容