利用代码来添加图片按钮

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController



#pragma mark 控制器的view 加载完毕的时候会调用一次

- (void)viewDidLoad {

    [superviewDidLoad];


    // Do any additional setup after loading the view, typically from a nib.


    //用代码添加按钮的步骤

    //1.创建按钮(因为任何对象都是用类来创建的)

    //1.1按钮的对象是UIButton这个类,所以创建类的方法就是[[UIButton alloc] init]

  UIButton *button = [[UIButtonalloc] init];


    //1.2尺寸和位置是用到frame这个属性,frame属性中有坐标和宽高 CGRectMake(CGFloat x, CGFloat y, CGSize weidht, CGSize height );

    button.frame =CGRectMake(20,20, 50, 50);


    //1.3设置按钮普通状态下的属性

    //1.3.1设置背景图片 setBackgroundImage:(UIImage *) forState:(UIControlState) (UIImage *)这里是一个对象,不能直接传字符串,不需要把图片设置为对象,然后传进来

    //forState 是状态,这里有两个,一个是普通,    UIControlStateNormal  一个是高亮   UIControlStateHighlighted


    //创建普通状态下得图片,调用这个imageNamed:(NSString *); 这个方法是只要调用这个方法,把图片的文件名加进来,就会创建图片对象,然后把这个对象传到下面哪行代码中。

   UIImage *normal = [UIImageimageNamed:@"xiao.jpg"];


    [button setBackgroundImage:normalforState:UIControlStateNormal];


    //1.3.2设置文字 setTitle:(NSString *) forState:(UIControlState), (NSString *)这个字符串对象可以直接写, 因为状态也是普通的所以用 UIControlStateNormal

    [button setTitle:@"我笑了"forState:UIControlStateNormal];

    //1.3.3这个是设置字体大小的两种方法

    //[button setFont :[UIFont systemFontOfSize: 10.0]]; //用这个setFont会出现警告 setfont is deprecated first  deprecated in iOS 3.0

    button.titleLabel.Font = [UIFontsystemFontOfSize: 10.0];


    // 1.3.4设置字体颜色

    [button setTitleColor:[UIColorgreenColor] forState:UIControlStateNormal];



    //1.4设置按钮高亮状态下的属性,代码和上面的差不多,只是把状态和对象修改一下


   UIImage *hghlighted = [UIImageimageNamed:@"ku.jpg"];


    [button setBackgroundImage:hghlightedforState:UIControlStateHighlighted];


    //1.4.2设置文字 setTitle:(NSString *) forState:(UIControlState), (NSString *)这个字符串对象可以直接写, 因为状态也是普通的所以用 UIControlStateNormal

    [button setTitle:@"ku"forState:UIControlStateHighlighted];

    //这个是设置字体大小的两种方法

    //[button setFont :[UIFont systemFontOfSize: 10.0]]; //用这个setFont会出现警告 setfont is deprecated first  deprecated in iOS 3.0

    button.titleLabel.Font = [UIFontsystemFontOfSize: 10.0];


    [button setTitleColor:[UIColorredColor] forState:UIControlStateHighlighted];


    //1.5监听按钮点击 addTarget:(id) action:(SEL) forControlEvents:(UIControlEvents)其中id是对象,SEL是方法, UIControlEvents 是事件,有点击事件, 拖拽事件,这里是淡季事件

    //触发UIControlEventTouchUpInside就是调用 (id)对象的(SEL) 方法

    [button addTarget:selfaction:@selector(buttClick)forControlEvents:UIControlEventTouchUpInside];

    //self的原因是监听当前控制器的方法,所以就是self 所以上面这行代码解释:当触发了TouchUpInside就会调用当前控制器(self)@selector(buttClick)方法



    //2。添加按钮到控制器的view

    //2.1 添加按钮到控制器的view中得方法,调用控制器viewaddSubview(添加子控件):(UIView *)方法,这个(UIView *)就是创建的按钮对象

    [self.viewaddSubview:button];// 但是仅仅只有这个代码还是不行的,因为这个按钮没有任何颜色,宽高(size),以及坐标(Point)


//3.添加文本输入框

    // 3.1创建文本对象,因为文本的属性是UITextField

    UITextField *field = [[UITextField alloc] init];

    //3.2 把这个文本框添加到控制器的view中,addSubview是子控件的意思

    [self.view addSubview:field];

    //3.3设置文本框的尺寸

    field.frame = CGRectMake(70, 70, 100, 100);

    //3.4设置文本框的背景颜色 setBackgroundColor:(UIColor *);

    [field setBackgroundColor: [UIColor redColor]];

    // 3.5 设置文字大小

    field.Font = [UIFont systemFontOfSize: 10.0];


    // 3.6让文本框在view中居中,用center

    // 3.6.1中点的xself.view是控制器view,里面的frame ,里面的size的宽

    CGFloat centerx = self.view.frame.size.width/2;

    // 3.6.2 中点的y

    CGFloat centery = self.view.frame.size.height/2;

    field.center = CGPointMake(centerx, centery);// 因为center是一个点 所以是xy


    //设置文字在文本框中得位置

    field.contentVerticalAlignment=UIControlContentVerticalAlignmentTop;


}


// 这个是内存警告

- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



#pragma mark 监听按钮点击的方法


- (void)buttClick

{

    NSLog(@"hahahsh!");


}


@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值