UIButton的类型


前言

这周在写一个小Demo的时候,发现自己的UIButton的图片怎么也加不上去。即使那种只有单一仙桃的图片加上去了,也总是有种很奇怪的感觉。 纠正后发现,是UIButton的类型的原因 以前没有注意到这块,记录一下这个问题


提示:以下是本篇文章正文内容,下面案例可供参考

不对劲的一个出现

//  ViewController.m
//  UIButton
//
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton* btn = [UIButton buttonWithType:UIButtonTypeSystem];
    [btn setImage:[UIImage imageNamed:@"shezhi"] forState:UIControlStateNormal];
    btn.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:btn];
    // Do any additional setup after loading the view.
}
@end

背景的图片是我添加的名为shezhi的一张图片,但是我们的虚拟机上显示的图片却是蓝色的一张图
在这里插入图片描述
那如果换一张图片呢?

//  ViewController.m
//  UIButton
//
//  Created by 王璐 on 2022/10/21.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton* btn = [UIButton buttonWithType:UIButtonTypeSystem];
    [btn setImage:[UIImage imageNamed:@"shezhi"] forState:UIControlStateNormal];
    btn.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:btn];
    
    
    
    
    UIButton* btn2 = [UIButton buttonWithType:UIButtonTypeSystem];
    [btn2 setImage:[UIImage imageNamed:@"touxiang.jpeg"] forState:UIControlStateNormal];
    btn2.frame = CGRectMake(300, 100, 100, 100);
    [self.view addSubview:btn2];
    // Do any additional setup after loading the view.
}


@end

这次更离谱了,甚至连轮廓都没有了。
在这里插入图片描述

UIButtonTypeSystem

系统样式

解决方法

//  ViewController.m
//  UIButton
//
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn setImage:[UIImage imageNamed:@"shezhi"] forState:UIControlStateNormal];
    btn.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:btn];
    
    
    
    
    UIButton* btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn2 setImage:[UIImage imageNamed:@"touxiang.jpeg"] forState:UIControlStateNormal];
    btn2.frame = CGRectMake(300, 100, 100, 100);
    [self.view addSubview:btn2];
    // Do any additional setup after loading the view.
}


@end

这是创建结果
在这里插入图片描述

UIButtonTypeCustom

自定义类型,无样式

其他类型的button

UIButtonTypeRoundedRect

圆角类型
当UIButton是UIButtonTypeSystem类型时,改变UIButton的frame,系统会有一个动画改变效果,不想要这个效果,将类型改为UIButtonTypeCustom

在这里插入图片描述

UIButtonTypeClose

在这里插入图片描述

UIButtonTypeInfoDark

图片为i字母(info)暗的信息类型

在这里插入图片描述

UIButtonTypeContactAdd

加号(+)按钮类型

在这里插入图片描述

UIButtonTypeInfoLight

图片为i字母(info)亮的信息类型

在这里插入图片描述

UIButtonTypeDetailDisclosure

细节详情样式

在这里插入图片描述


总结

因为button类型的不清楚,在这块卡了好久好久。后来才发现是因为这个。
以后在学习的过程中应该更注意一些细节。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山河丘壑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值