欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ios开发之UI基础

程序员文章站 2023-10-06 11:42:04
ios开发之ui基础 1.初始阶段: 1.core data某些数据可以放在本地; 2.界面控制器相当于是界面管家;(管理view和view里面的东西) 2.启动过程 plist中设置了的话,加载m...

ios开发之ui基础

1.初始阶段:

1.core data某些数据可以放在本地;

2.界面控制器相当于是界面管家;(管理view和view里面的东西)

2.启动过程

plist中设置了的话,加载main.storyboard,加载箭头指向的控制器,加载控制器中的view,显示给用户

is intial view controller

每个控制器都会有个类,也就是我们的viewcontroller已经和mainstoryboard绑定;

ibaction:

从返回值来看,是ibaction,类似与void;

只有返回是ibaction,才能与storyboard中控件进行连线。

一个控制器管理一个界面

ibaction:方法和storyboard中控件进行连线,相当于void

@property(nonatomic,weak) iboutlet uilabel *label;

iboutlet:修饰属性

ib:interface builder,xcode4开始,将ib整合到xcode中

self.redbutton.backgroundcolor=[uicolor redcolor];

判断一个对象能否连线给方法:

1.判断对象所在的类是否继承自uicontroller;

2.看对象是否有setevents

uibutton继承自uicontroller,uilabel继承自uiview

连线中的错误:

错误一:找不到键值对;

reason:[mainviewcontroller 0xxxx setvalue:forundefinedkey:]

原因:有多余连线,注释掉了,但是连线还存在;

错误二:找不到方法

reason:[mainviewcontroller clickbtn:]:unrecognized selector sent to instance 0xxxx];

控件

屏幕上所有的ui元素就是控件,也有人叫做视图、;

按钮(uibutton)、文本(uilabel)都是控件;

常见属性:

控件的共同属性有哪些?

尺寸

颜色

背景色

苹果将控件的共同属性都抽取到父类uiview中

每个控件其实都是一个容器,可以将其他控件放到该控件的内部,比较常见的还是将uiview作为容器;

每一个控制器都有一个uiview,控制器本身是不可见的,能够看到的是控制器的view,每一个控制器的都有uiview的属性,控制器中管理的所有子控件都是该控件的子控件;

@property(nonatomic,readonly)uiview *superview: 获取自己的父控件对象;

@property(nonatomic,readonly,copy)nsarray *subviews: 获取自己的父控件对象;

viewcontroller中的viewdidload方法和didreceivememorywarning时候;

加载控制器先调用loadview方法

然后是

//1.调用;2.控制权的view加载完毕的时候调用;3.控件初始化,数据初始化(懒加载);

viewdidload

然后viewwillappear:(bool)animated{

}

//1.系统调用;2.当控制器收到内存警告;3.去除一些不必要的内存,去掉耗时内存

viewdidreceivememory

控制器view的父控件是uiwindow

@property(nonatomic)nsinteger tag;

控件的id,父控件通过tag来找到对应的子控件

@property(nonatomic)cgaffinetranform transform;

控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)

uiview常见方法

addsubview:

remove

只有控制器里面能放属性;

控制器的属性关联着对象,通过控制器属性拿到这个对象做一些事情;

选项卡对象:

[uisegmentedcontrol *sg]=[uisegmentedcontrol alloc] initwithitems:@[@”哈哈”,@”呵呵”,@”嘻嘻”];

//从父控件中移除

[sg removefromsuperview];

//根据一个tag找到对应的控件(一般都是子控件)

[uiview *]viewwithtag:(nsinteger)tag;

uiview中坐标:

frame:

bounds:一般是改变宽度的;

center:中心点相对于左上角的点;