• IOS之按钮控件--Button全解析及使用 分类: ios技术 2015-01-17 17:09 169人阅读 评论(0) 收藏


    IOS开发中伴随我们始终的 最常用的几个空间之一 -- UIButton 按钮,对于button今天在此做一些浅析,并介绍下主流用法以及常见问题解决办法.

        首先是继承问题,UIButton继承于UIControl,而UIControl继承于UIView.     

    那么UIButton自然继承了UIView的属性.比如frame,layer等

    至于UIButton的创建

       

        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.backgroundColor = [UIColor clearColor];
        button.frame = CGRectMake(90, 90, 51, 24);
    //    // 内存: 不需要释放 因为是便利构造器
        [button setTitle:@"请点击" forState:UIControlStateNormal]; // 正常状态
        [button setTitle:@"点击中" forState:UIControlStateHighlighted]; // 高亮状态
        [button setTitle:@"已点击" forState:UIControlStateSelected];
        
        button.selected = NO;
        self.isSelected = 0;
        [button setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];
        [button setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected];
        // 按钮字体大小
        button.titleLabel.font = [UIFont systemFontOfSize:30];
        // 设置前景图片 (当button frame改变的时候 图片不变)
        [button setImage:[UIImage imageNamed:@"BtnOff@2x.png"] forState:UIControlStateNormal];
        
        // 禁止按钮按下颜色变深效果
        button.adjustsImageWhenHighlighted = NO;
        
        [button setImage:[UIImage imageNamed:@"IconAdd.png"] forState:UIControlStateHighlighted];
        // 设置背景图片 (当button frame改变的时候 图片不变)
        // 创建一个UIImage对象, 图片对象
        [button setBackgroundImage:[UIImage imageNamed:@"FrendAdd.png"] forState:UIControlStateNormal]; // 正常
        [button setBackgroundImage:[UIImage imageNamed:@"IconAdd.png"] forState:UIControlStateHighlighted]; // 高亮
        
        
        
        // button最核心的方法
        // 1.target 目标 就是button指定谁去执行方法
        // 2.action 方法 就是执行什么
        // 3.evunts 就是点击按钮时的状态
        // 4.UIControlEventTouchUpInside 当手离开触发
        [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
        [self.window addSubview:button];


    对于在button上加图片有2种方式

    第一种:setBackGroudImage:图片被拉伸

    第二种:setImage:  图片保持原大小

    注意设置图片时可能会出现渲染问题 此时的解决办法

    // 处理图片渲染问题
        UIImage *setImage = [UIImage imageNamed:@"setImage"];
        UIImage *newSetImage = [setImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    
    

    给button设置成圆形
    // 设置button的圆角半径,这样按钮就变成了园的
        button.layer.cornerRadius = 50;
        // 将button上的图片一样变成圆形
        [button.layer masksToBounds];
        // 添加边框
        button.layer.borderWidth = 3;
        // 边框颜色 注意要加.CGColor属性
        button.layer.borderColor = [UIColor orangeColor].CGColor;

    
    给button设置阴影
    // 设置阴影 横坐标向右 纵坐标向下 可负值
        button.layer.shadowOffset = CGSizeMake(1, 1);

    同时设置button上有文字和图片,并且同时实现点击效果

    //    在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets  
        [button setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];//给button添加image  
    //设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-10,那么image就象上移动10个像素  
        button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);

    
    button如果设置了图片的情况下 还有一个酷炫的点击效果 
    

    button.showsTouchWhenHighlighted = YES;


    以上适合于IOS初学者对于button的使用,button的一些常用主流实现功能以及常见的需求逻辑

      

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Understanding about Baire Category Theorem
    Isometric embedding of metric space
    Convergence theorems for measurable functions
    Mindmap for "Principles of boundary element methods"
    Various formulations of Maxwell equations
    Existence and uniqueness theorems for variational problems
    Kernels and image sets for an operator and its dual
    [loj6498]农民
    [luogu3781]切树游戏
    [atAGC051B]Three Coins
  • 原文地址:https://www.cnblogs.com/liuqixu/p/4684012.html
Copyright © 2020-2023  润新知