IOS开发第四天-UI相关组件

    xiaoxiao2021-04-19  95

    UIButton:

    UIButton只能用类方法来获得对象,而不是利用init来初始化,由于其自身维护。UIButton的创建方式:

    //获得UIButton对象 UIButton* btn=[UIButton buttonWithType:UIButtonTypeRoundedRect]; //设置button的位置以及大小; btn.frame=CGRectMake(100, 100, 100, 40); [btn setTitle:@"按钮1" forState:UIControlStateNormal]; //设置按钮在不同状态的title [btn setTitle:@"按钮按下" forState:UIControlStateHighlighted]; btn.backgroundColor=[UIColor blackColor]; //设置按钮的背景色 [self.view addSubview:btn]; //将按钮加在view上 [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; //设置按钮的颜色 [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted]; btn.titleLabel.font=[UIFont systemFontOfSize:20]; //设置title的字体大小 为按钮绑定事件:

    [btn addTarget:self action:@selector(pressBtn) forControlEvents:UIControlEventTouchDown]; [btn addTarget:self action:@selector(move) forControlEvents:UIControlEventTouchUpOutside];

    target:标识由哪个对象来处理;

    action:由目标中的哪个函数来处理;

    forControlEvents:指的是处理的是哪个事件。

    利用@selector来获得SEL对象,来实现按钮的相应函数。如果想在相应函数中传入参数,那么可以按下面的形式写:

    [btn addTarget:self action:@selector(move:) forControlEvents:UIControlEventTouchUpOutside]; 然后,move的函数定义为:

    -(void) move:(UIButton*) btn{ .//逻辑实现 } 传入的参数是本UIButton的对象。利用此参数,可以知道是哪个按钮按下的,也就是可以区分是哪个事件源触发的事件。

    可以利用btn.tag=1;来标识按钮的标签。

    UIView基础概念:

    UIView是IOS中的视图对象,是显示在屏幕上所有的对象的基础类,也就是说,所有显示在屏幕上的对象一定都继承于UIView。UIView是一个可以显示的矩形对象,显示在屏幕上

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIView* view=[[UIView alloc]init]; view.frame=CGRectMake(0, 0, 100, 100); view.backgroundColor=[UIColor redColor]; [self.view addSubview:view]; //将view加到父视图中。 ///隐藏view view.hidden=NO; //设置视图的透明度 view.alpha=0.8; //将自己从父视图删除掉 [view removeFromSuperview]; }

    UIView层级关系

    UIView的层级关系按照:

    [self.view addSubview:view01]

    的添加方式来确定。

    如果想要调整视图的层级关系,那么利用下面的函数来调整:

    [self.view bringSubviewToFront: view01 表示要调整那一个视图在最前面。self.view为父视图。

    [self.view sendSubviewToBack: view01 表示将某那一个视图到最后方。

    UIView* viewFront=self.view.subviews[2]; UIView* viewBack=self.view.subview[0];

    每一个视图只有一个父视图,view01.superview;

    每一个视图有若干个子视图:view01.subviews

    UIWindow对象

    在使用UIWindow之前,在我们新建的工程中,删除info.plist配置文件中的布局文件,然后在AppDelegate.m文件中,创建UIWindow对象,具体代码如下:

    //当程序框架初始化成功后调用此函数此函数用来初始化整个程序框架结构的,是整个IOS开发工程师的入口函数(main)函数 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. /* 1、创建一个window对象 2、整个程序中只有一个UIWindow对象;在程序基本上表示屏幕窗口 3、UIWindow继承于UIView,是一个特殊的UIView 4、UIScreen表示屏幕硬件类,mainScreen获得主屏幕的设备信息,bounds表示屏幕的宽高;获取依次即可 */ self.window=[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; /* 1、创建一个视图控制器作为UIWindow的视图控制器 */ self.window.rootViewController=[[UIViewController alloc] init]; //设置背景颜色 self.window.backgroundColor=[UIColor blueColor]; //设置window有效并显示 [self.window makeKeyAndVisible]; return YES; } 通过增加多个视图,我们得到下面的代码:

    //当程序框架初始化成功后调用此函数此函数用来初始化整个程序框架结构的,是整个IOS开发工程师的入口函数(main)函数 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. /* 1、创建一个window对象 2、整个程序中只有一个UIWindow对象;在程序基本上表示屏幕窗口 3、UIWindow继承于UIView,是一个特殊的UIView 4、UIScreen表示屏幕硬件类,mainScreen获得主屏幕的设备信息,bounds表示屏幕的宽高;获取依次即可 */ self.window=[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; /* 1、创建一个视图控制器作为UIWindow的视图控制器 */ self.window.rootViewController=[[UIViewController alloc] init]; //设置背景颜色 self.window.backgroundColor=[UIColor blueColor]; //创建子视图,并设置颜色 UIView* view=[[UIView alloc] initWithFrame:CGRectMake(100, 100, 150, 150)]; view.backgroundColor=[UIColor orangeColor]; //设置父视图 UIView* backview=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 240, 360)]; backview.backgroundColor=[UIColor whiteColor]; /* 将view加到backview上,将backview加到window上, 此时,子视图的坐标是参照父视图的坐标系,当父亲视图移动时,所有的子视图都会移动。 */ [backview addSubview:view]; [self.window addSubview:backview]; /* 在整个程序中,只有一个window,正如上面的view,backview以及self中的window属性,全部相等。 */ //设置window有效并显示 [self.window makeKeyAndVisible]; return YES; }

    关于UIWindow以及UIView的关系如下图:

    转载请注明原文地址: https://ju.6miu.com/read-675882.html

    最新回复(0)