UIButton 解析


IOS之按钮控件--Button全解析及使用

转载自:forget

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

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

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

至于UIButton的创建

  1. UIButton*button=[UIButtonbuttonWithType:UIButtonTypeCustom];
  2. button.backgroundColor=[UIColorclearColor];
  3. button.frame=CGRectMake(90,90,51,24);
  4. //内存:不需要释放因为是便利构造器
  5. [buttonsetTitle:@"请点击"forState:UIControlStateNormal];//正常状态
  6. [buttonsetTitle:@"点击中"forState:UIControlStateHighlighted];//高亮状态
  7. [buttonsetTitle:@"已点击"forState:UIControlStateSelected];
  8. button.selected=NO;
  9. self.isSelected=0;
  10. [buttonsetTitleColor:[UIColorclearColor]forState:UIControlStateNormal];
  11. [buttonsetTitleColor:[UIColoryellowColor]forState:UIControlStateSelected];
  12. //按钮字体大小
  13. button.titleLabel.font=[UIFontsystemFontOfSize:30];
  14. //设置前景图片(当buttonframe改变的时候图片不变)
  15. [buttonsetImage:[UIImageimageNamed:@"BtnOff@2x.png"]forState:UIControlStateNormal];
  16. //禁止按钮按下颜色变深效果
  17. button.adjustsImageWhenHighlighted=NO;
  18. [buttonsetImage:[UIImageimageNamed:@"IconAdd.png"]forState:UIControlStateHighlighted];
  19. //设置背景图片(当buttonframe改变的时候图片不变)
  20. //创建一个UIImage对象,图片对象
  21. [buttonsetBackgroundImage:[UIImageimageNamed:@"FrendAdd.png"]forState:UIControlStateNormal];//正常
  22. [buttonsetBackgroundImage:[UIImageimageNamed:@"IconAdd.png"]forState:UIControlStateHighlighted];//高亮
  23. //button最核心的方法
  24. //1.target目标就是button指定谁去执行方法
  25. //2.action方法就是执行什么
  26. //3.evunts就是点击按钮时的状态
  27. //4.UIControlEventTouchUpInside当手离开触发
  28. [buttonaddTarget:selfaction:@selector(buttonAction:)forControlEvents:UIControlEventTouchUpInside];
  29. [self.windowaddSubview:button];


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

第一种:setBackGroudImage:图片被拉伸

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

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

  1. //处理图片渲染问题
  2. UIImage*setImage=[UIImageimageNamed:@"setImage"];
  3. UIImage*newSetImage=[setImageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

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


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

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

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


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

  1. button.showsTouchWhenHighlighted=YES;


以上适合于IOS初学者对于button的使用,button的一些常用主流实现功能以及常见的需求逻辑 优质内容筛选与推荐>>
1、Form.IsDisposed, Application.ThreadException 统统无用,还是要 try 大法
2、90后程序员工作经历
3、leetcode 923. 3Sum With Multiplicity
4、Java并发之ThreadPoolExecutor
5、Android中实现延时执行操作的几种方法


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn