IOS开发随手笔记(UI控件基础类)---1

本文详细介绍了iOS中按钮控件的属性设置,包括位置、尺寸、旋转、缩放等,并通过实例展示了如何实现图片的上下左右移动和缩放功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、控件的属性

1.frame

1> 表示控件的位置和尺寸(以父控件的左上角坐标为原点(00))

2> 修改这个属性,可以调整控件的位置和尺寸


2.center

1> 表示控件的中点,(以父控件的左上角为坐标原点)

2> 修改这个属性,可以调整控件的位置


3.bounds

1> 表示控件的位置和尺寸(以自己的左上角坐标原点,位置永远是(00))

2.修改这个属性,只能调整控件的尺寸


4.tag

1> 表示控件的表示

2> 通过不同表示可以区分不同的控件


5.transform

1> 表示控件的变形状态(旋转角度,缩放比例)

2> 创建CGAffineTransform的函数

* CGAffineTransformMakeScale(CGFloat sx, CGFloat,sy)

创建一个xy方向的缩放比例分别为sx,sy的形变值


* CGAffineTransformMakeRotation(CGFloat angle)

创建一个旋转角度为angle的形变值


* CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)

再形变t的基础上,再进行缩放,xy方向的缩放比例分别为sx,sy,返回一个新的形变值


* CGAffineTransfomeRotate(CGAffineTransform t,CGFloat angle)

再形变t的基础上,再进行旋转,旋转角度为angle,返回一个新的形变值


二、添加控件到控制器的view

self.view.addSubview:子控件];


实例:使用UIButton实现图片的上下左右移动和缩放功能

<span style="font-family:Comic Sans MS;">//
//  ViewController.h
//  IOS_Button
//
//  Created by ken on 14-11-1.
//  Copyright (c) 2014年 Ken. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIButton *btn;

- (IBAction)RunDirection:(id)sender;
- (IBAction)Reset:(id)sender;
- (IBAction)Rotate:(id)sender;
- (IBAction)Size:(id)sender;

@end</span>

<span style="font-family:Comic Sans MS;">//
//  ViewController.m
//  IOS_Button
//
//  Created by ken on 14-11-1.
//  Copyright (c) 2014年 Ken. All rights reserved.
//

#import "ViewController.h"
#define kMoveSize 50 ;

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)btnClick:(id)sender block:(void (^)())block
{
    //设置启动动画[需要动画的代码全部需要包含再UIView commitAnimations中]
    [UIView beginAnimations:nil context:nil];
    //设置动画的秒数为0.7秒[时间随意设置按秒为计算单位]
    [UIView setAnimationDuration:0.7];
    //block类型
    block();
    //提交动画/结束动画
    [UIView commitAnimations];
}

# pragma Mark 控制按钮的移动
- (IBAction)RunDirection:(id)sender
{
    [self btnClick:sender block:^{
        CGRect frame =  self.btn.frame ;
        //根据sender传送的tag选择方向操作
        switch ([sender tag]) {
            case 1:     //上
                frame.origin.y -= kMoveSize;
                break;
                
            case 2:     //右
                frame.origin.x += kMoveSize;
                break;
                
            case 3:     //下
                frame.origin.y += kMoveSize;
                break;
                
            case 4:     //左
                frame.origin.x -= kMoveSize;
                break;
                
            default:
                break;
        }
        //将新的变量的值再赋还给button
        self.btn.frame = frame;
    }];
}

# pragma Mark 控制按钮返回原状态
- (IBAction)Reset:(id)sender
{
    [self btnClick:sender block:^{
        self.btn.transform = CGAffineTransformIdentity; //CGAffineTranformIdentity是设置transform的起始状态
    }];
}

# pragma Mark 控制按钮的旋转
- (IBAction)Rotate:(id)sender
{
    [self btnClick:sender block:^{
        //接受send接受的tag值
        int tag = [sender tag]; //id类型的参数不能用点语法[demo.name]只能用对象的get法方
        self.btn.transform = CGAffineTransformRotate(self.btn.transform, M_PI_4 * ((10 == tag? -1:1)));
    }];
}

# pragma Mark 控制按钮的大小
- (IBAction)Size:(id)sender
{
    [self btnClick:sender block:^{
        int tag = [sender tag];
        if (20 == tag) {
            self.btn.transform = CGAffineTransformScale(self.btn.transform, 1.2, 1.2);
        }else{
            self.btn.transform = CGAffineTransformScale(self.btn.transform, 0.8, 0.8);
        }

    }];
}
@end
</span>


三、设置按钮属性(使用代码创建视图)

<span style="font-family:Comic Sans MS;">- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    // 1.创建按钮
    // 1.1.创建
    UIButton *btn = [[UIButton alloc] init];
    
    NSLog(@"viewdidload----%p", btn);
    
    // 1.2.设置按钮的尺寸和位置
    btn.frame = CGRectMake(0, 0, 100, 100);
    
    // 1.3.设置按钮普通状态下的属性
    // 1.3.1.设置背景图片
    UIImage *normal = [UIImage imageNamed:@"btn_01.png"];
    [btn setBackgroundImage:normal forState:UIControlStateNormal];
    // 1.3.2.设置文字
    [btn setTitle:@"点我啊" forState:UIControlStateNormal];
    // 1.3.3.设置文字颜色
    [btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    
    // 1.4.设置按钮高亮状态下的属性
    // 1.4.1.设置背景图片
    UIImage *high = [UIImage imageNamed:@"btn_02.png"];
    [btn setBackgroundImage:high forState:UIControlStateHighlighted];
    // 1.4.2.设置文字
    [btn setTitle:@"摸我干啥" forState:UIControlStateHighlighted];
    // 1.4.3.设置文字颜色
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
    
    // 1.5.监听按钮点击
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    // 2.添加按钮到控制器的view中
    [self.view addSubview:btn];
    
    // 3.添加文本输入框
    UITextField *field = [[UITextField alloc] init];
    field.frame = CGRectMake(100, 100, 100, 50);
    field.backgroundColor = [UIColor redColor];
    
    // 中点的x
    CGFloat centerX = self.view.frame.size.width * 0.5;
    CGFloat centerY = self.view.frame.size.height * 0.5;
    field.center = CGPointMake(centerX, centerY);
    
    // 设置字体
    field.font = [UIFont systemFontOfSize:30];
    
//    [field setBackgroundColor:<#(UIColor *)#>]
    [self.view addSubview:field];
}

#pragma mark 监听按钮点击
- (void)btnClick:(UIButton *)btn
{
    NSLog(@"点击了按钮");
}
@end</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值