iOS开发---->UI基础---->Objective-C

目录

一、动态创建UI插件Demo(按钮篇) 

二、Demo解析

三、UIButton控件介绍

1 . UI常用控件:

2 . UIButton属性介绍:

3 . CGRect、CGSize、CGPoint的介绍:

4.frame、center、bounds、tag、transform属性:


一、动态创建UI插件Demo(按钮篇) 

- (void)ViewDidLoad()
{
    [super ViewDidLoad];
    //1.动态创建一个按钮
    //UIButton *button  = [[Button alloc] init];//常见类的对象的创建方式
    UIButton *button = [UIButton buttonWithType:UIButonTypeCustom];

    //2.在按钮上的默认状态、高亮状态设置文字及字体颜色
    /******普通状态下(UIControlStateNormal)******/
    [button setTitle:@"我是默认状态下的文字" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    /******高亮状态下(UIControlStateHighlighted)******/
    [button setTitle:@"我是高亮状态下的文字" forState:UIControlStateHighlighted];
    [button setTitleColor:[UIColor buleColor] forState:UIControlStateHighlighted];

    //3.为按钮在默认状态下、高亮状态下设置背景图片
    UIImage *imageNormal = [UIImage imageNamed:@"图片名"];//这里放的是默认状态下的图片
    UIImage *imageHighlighted = [UIImage imageNamed:@"图片名"];//这里放的是高亮状态下的图片
    [button setbackgroundimage:imageNormal forState:UIControlStateNormal];
    [button setbackgroundimage:imageHighlighted forState:UIControlStateHighlighted];
    
    //4.设置按钮的frame
    button.frame = CGRectMake(50,50,150,150);
    
    //5.为按钮设置点击事件
    [button addTarget:self action:@selector(ButtonClick)             
                           forControlEvents:UIControlEventTouchUpInside];
    
    //6.将创建好的按钮加载到控制器所管理的view中
    [self.view addSubview:button];
}
- (void)ButtonClick
{
    NSLog("点击了这个按钮");
}

 

二、Demo解析

步骤:1.先创建一个新的按钮控件(对象)

           2.为按钮的默认状态和高亮状态设置文字

           3.为按钮的默认状态和高亮状态设置文字颜色

           4.为按钮设置frame(位置,大小)属性

           5.为按钮设置一个点击事件

           6.把按钮添加到控制器所管理的那个view中


三、UIButton控件介绍

           1 . UI常用控件

           2 . UIButton属性介绍

           3 . CGRect、CGSize、CGPoint的介绍

           4 . frame、center、bounds、tag、transform属性

1 . UI常用控件:

      UIButton、UIImage、UILable、UITextFiled

2 . UIButton属性介绍:

     <1> UIButton就是一个按钮控件,它存在三个状态UIControlState(枚举常量)

UIControlStateNormal(默认状态)
UIcontrolStateHighlighted(高亮状态)
UIControlStateDisabled(不可点击状态)

     <2> UIButton按钮的样式:代码创建按钮的同时指定按钮的样式

            eg:UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//自定义状态

UIButtonType
UIButtonTypeCustom
UIButtonTypeDetailDisclosure
UIButtonTypeInfoLight
UIButtonTypeInfoDark
UIButtonTypeContactAdd

     <3> UIControlEvents --- 点击事件

            eg:UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

                 [button addTarget:id action:SEL forControlEvents:UIControlEventTouchUpInside];//最常用的UIControlEventTouchUpInside

UIControlEvents
UIControlEventTouchDown
UIControlEventTouchDownRepeat
UIControlEventTouchDragInside
UIControlEventTouchDragOutside
UIControlEventTouchDragEnter
UIControlEventTouchDragExit
UIControlEventTouchUpInside
UIControlEventTouchUpOutside
UIControlEventTouchCancel
UIControlEventValueChanged
UIControlEventPrimaryActionTriggered
UIControlEventEditingDidBegin
UIControlEventEditingChanged
UIControlEventEditingDidEnd
UIControlEventEditingDidEndOnExit
UIControlEventAllTouchEvents
UIControlEventAllEditingEvents
UIControlEventApplicationReserved
UIControlEventSystemReserved
UIControlEventAllEvents

3 . CGRect、CGSize、CGPoint结构体的介绍

     <1> 结构体的定义:

//CGPoint结构体  
CGPoint{
    CGFloat x;//横坐标
    CGFloat y;//纵坐标
};

//CGSize结构体  
CGSize{
    CGFloat width;//宽度
    CGFloat height;//高度
};

//CGRect结构体  
CGRect
    CGFloat original;//横坐标
    CGFloat size;//纵坐标
};

    <2> 结构体常见的创建方式

//CGPoint的创建和输出
CGPoint point = CGPointMake(10.0f,20.0f);
NSLog(@"Point = %@",NSStringFormCGPoint(point));

//CGSize的创建和输出
CGSize size = CGSizeMake(10.0f,20.0f);
NSLog(@"Size = %@",NSStringFormCGSize(size));

//CGRect的创建和输出
CGRect rect = CGRectMake(10,10,45,45);
NSLog(@"Rect = %@",NSStringFormCGRect(rect));

     <3> 获取控制器各种尺寸的方法

CGRect rect1 = CGRectMake(point.x,point.y,size.width,size.height);
CGRect rect2 = CGRectMake(point.x,point.y,size.width,size.height);

//1.获取矩形最左边的x值
CGFloat CGRectGetMinx (CGRect rect);

//2.获取矩形中点的x值
CGFloat CGRectGetMidx (CGRect rect);

//3.获取矩形最右端的x值
CGFloat CGRectGetMaxx (CGRect rect);

//4.获取矩形最上端的y值
CGFloat CGRectGetMinY (CGRect rect);

//5.获取矩形最下端的y值
CGFloat CGRectGetMinY (CGRect rect);

//6.获取矩形宽度
CGFloat CGRectGetWidth (CGRect rect);、

//7.获取矩形宽高度
CGFloat CGRectGetHeight (CGRect rect);

//8.判断两点是否相等
BOOL CGRectEqualToPoint (CGRect point1,CGPoint point2);

//9.判断两个尺寸是否相等
BOOL CGRectEqualToSize (CGSize size1,CGSize size2);

//10.判断两个矩形是否相等
BOOL CGRectEqualToRect (CGRect rect1,CGRect rect2);

4 . frame、center、bounds、tag、transform属性

注意:OC语法规定:不允许直接修改对象的结构体属性的成员

     <1>  frame

            -->是一个CGRect结构体类型

            -->可用来修改一个控件的大小,位置

            -->frame获取的x,y表示元素左上角的坐标

     <2>  center

            -->是一个CGPoint结构体类型

            -->只能用来修改一个控件的位置

            -->center表示的是控件中心点的坐标

     <3>  bounds

            -->是一个CGRect结构体类型

            -->所以是CGRect结构体类型,但是只能用来修改控件大小(bounds中的x,y永远为0)

            -->bounds以自己左上角为坐标原点定义控件所在矩形的位置和尺寸

     <4>  tag

            -->用于标识控件

            -->可以通过标识值来间接访问控件

     <5>  transform

            -->全能

            -->可以修改对象的平移,缩放比例和旋转角度

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Objective-C是一门面向对象的编程语言,它是C语言的扩展,常用于开发iOS和Mac应用程序。在Objective-C中,线程是用来执行并发任务的执行单元。 Objective-C中处理线程的方式有多种,最常用的方式是使用NSThread类或GCD(Grand Central Dispatch)。下面我将简单介绍这两种方式: 1. NSThread:NSThread是Objective-C封装的线程类,可以手动创建和管理线程。你可以通过创建NSThread对象,并调用start方法来启动线程。NSThread提供了一些方法,如sleep、exit、cancel等,用于线程的控制和管理。 示例代码: ``` NSThread *myThread = [[NSThread alloc] initWithTarget:self selector:@selector(myThreadMethod) object:nil]; [myThread start]; ``` 2. GCD(Grand Central Dispatch):GCD是一种更现代化的多线程编程方式,它提供了一种高效且易于使用的并发模型。GCD使用队列(dispatch queue)来管理任务的执行,分为串行队列和并发队列两种类型。 示例代码: ``` // 创建并发队列 dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); // 在并发队列上异步执行任务 dispatch_async(concurrentQueue, ^{ // 执行任务的代码 }); ``` 以上是Objective-C中处理线程的两种常见方式,具体选择哪一种取决于你的需求和偏好。需要注意的是,在iOS开发中,为了确保UI的响应性,UI的更新必须在主线程(也称为主队列)上执行,可以使用GCD的主队列来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值