[iOS基础控件 - 1] UI概念

A. UIView

1.概念

属于UIKit框架

屏幕上能看得见摸得着的东西就是UIView,比如屏幕上的按钮、文字、图片

翻译为:视图/控件/组件

UIButton、UILable、UITextField都继承自UIView

每一个UIView都是一个容器,能容纳其他UIView

2.父控件和子控件

父控件:容纳其他UIView的UIView

子控件:被放置在另外的UIView中得UIView

B.UIViewController

1.概念

用来控制UIView的东西

当显示一个新界面时,首先会创建一个新的UIViewController,再由UIViewController创建对应的UIView,UIViewController负责管理这个UIView

UIViewController就是UIView的大管家,负责UIView的创建、显示、操作、销毁,负责监听UIView内部的事件,负责处理UIView用户的交互

UIViewController内部有个UIView属性,就是它负责的UIView对象

C.控件和UIViewController连接

1.IBAction

(1)能保证方法连线

(2)相当于void

2.IBOutlet

(1)能保证属性连线

3.UITextField

(1)设置键盘类型,控制输入数据类型(如数字键盘,只能输入数字)

4.Company Identifier & Bundle Identifier

Company Identifier + app名 = Bundle Identifier

Bundle Identifier 是APP的唯一标识

5.退出键盘

谁召出,谁驱去

1.

// 退出键盘

// 第一响应者,叫出键盘的那个软件

// 逐个卸下第一响应者

[self.num1 resignFirstResponder];

[self.num2 resignFirstResponder];

2.自带方法

[self.view endEditing:YES];

条件是,键盘是由self.view内部的控件召出的

C.私有扩展

在.m文件中写上扩展,但是没有扩展名

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@end

私有扩展可以定义变量,私有扩展中的变量和方法都是私有的

D.连线控件、方法最好放置在.m文件中,保持封装性

E.控件常见属性

superview父控件

subviews子控件

tag标识

transform形变

frame位置尺寸:以父控件的左上角为原点

bounds位置尺寸:控件所在矩形框的位置信息,以自己的左上角为原点,一般为(0,0)

center中点:以父控件的左上角为原点

时间: 2024-10-11 05:59:16

[iOS基础控件 - 1] UI概念的相关文章

[iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不可以再按 2.在屏幕中间弹出一个消息框,通知消息“xx已经被安装”,慢慢消失 3.消息框样式为圆角半透明 B.不使用代理模式,使用app空间组和主View之间的父子View关系 1.在主View中创建一个消息框 主View控制器:ViewController.m 1 // 创建下载成功消息框 2 CGFloat labelWid

iOS基础控件UINavigationController中的传值

iOS基础控件UINavigationController中的传值,代理传值,正向传值,反向传值 #import <UIKit/UIKit.h> //声明一个协议 @protocol SendValue<NSObject> //定义一个方法 - (void)sendBtnTitle:(NSString *)title; @end @interface FirstViewController : UIViewController // 定义代理 @property (nonatomi

ios基础控件之开关按钮(UISwitch)

UISwitch控件是iOS开发的基础控件,是非常简单的一个控件,因为它的方法比较少.UISwitch继承于UIControl基类,因此可以当成活动控件使用. 注意:开关状态通过它的on属性进行读取,该属性是一个BOOL属性 创建: UISwitch* mySwitch = [[ UISwitch alloc]initWithFrame:CGRectMake(0.150.0f,100.0f,0.0f,0.0f)]; 可能你会疑问为什么它的大小都设置为0?没错,它的大小你设置是无效的,系统会为你分

iOS基础控件之 用代码创建控件,不用storyboard

在开发过程中,并不是每次都通过storyboard拖控件完成UI界面,因为storyboard上面的界面是“固定死”的,有时候可能会在程序运行过程中动态地添加一些新的控件到界面上. 比如QQ的聊天信息,是有人发出一条信息后才动态显示出来的. 因此,需要掌握如何用代码动态地添加控件 实际上,storyboard的本质就是根据图形界面描述转成相应的代码. 实践: // 创建一个自定义的按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCu

【iOS基础控件 - 11】【Demo】模仿qq ,微信 UI 聊天界面

A.需求 做出一个类似于QQ.微信的聊天界面 1.每个cell包含发送时间.发送人(头像).发送信息 2.使用对方头像放在左边,我方头像在右边 3.对方信息使用白色背景对话框,我方信息使用蓝色背景对话框 4.隐藏相同的发送时间 5.底部功能按钮:语音按钮.消息输入框.表情按钮.附加按钮 6.响应键盘事件,呼出键盘.隐藏键盘时对上述的视图作出上移操作 7.键盘的发送事件处理 Code Source: B.实现点 1.底层视图搭建 上部分聊天信息框:UITableView 下部分功能区:UIButt

iOS 基础控件(下)

上篇介绍了UIButton.UILabel.UIImageView和UITextField,这篇就简短一点介绍UIScrollView和UIAlertView. UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的尺寸超出了屏幕范围之后,用ScrollView则可以通过滚动的方式使得超出屏幕的那部分内容通过滚动的方式显示出来,在Android里面有水平的ScrollView和垂直的ScrollView,在iOS里面就只有一个S

[iOS基础控件 - 6.12.3] @property属性 strong weak copy

A.概念 @property 的修饰词 strong: 强指针/强引用(iOS6及之前是retain) weak: 弱智真/弱引用(iOS6及之前是assign) 默认情况所有指针都是强指针 使用 "__weak" 修饰的指针是弱指针 ARC准则:只要没有强指针指向,对象就会被销毁 @property属性的用法 * weak(assign) :  代理\UI控件* strong(retain) : 其他对象(除代理\UI控件\字符串以外的对象)* copy : 字符串 * assign

[iOS基础控件 - 6.11.4] storyboard 的 Segue

A.概念 storyboard中的跳转事件连线,都是一个UIStoryboardSegue对象(Segue) 来源控制器 触发控制器 目标控制器 跳转到的控制器 Segue的属性: 每一个Segue对象,都有3个属性唯一标识@property (nonatomic, readonly) NSString *identifier;来源控制器@property (nonatomic, readonly) id sourceViewController;目标控制器 @property (nonatom

[iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储

A.需求 1.搭建一个“私人通讯录”Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改) B.基本架构 1. 5个控制器 (1)导航控制器 NavigationController (2)登陆 UIViewController 输入账号密码 记住密码.自动登录开关 登陆跳转按钮 (3)联系人列表 TableViewController 注销功能 添加联系人跳转按钮 (4)添加联系人 UIView (5)查看.编辑 UI