- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController *controller = [[UIViewController alloc]init]; [self.window setRootViewController:controller]; // 创建UIButton,唯独UIButton的创建不一样
// UIButtonTypeSystem 系统默认的类型
// UIButtonTypeCustom 用户自定义类型
// UIButtonTypeContactAdd 文字前面会有一个 + 符号 // UIButtonTypeDetailDisclosure 会有一个 i 符号
// UIButtonTypeInfoLight
// UIButtonTypeInfoDark // UIButtonTypeRoundedRect 跟UIButtonTypeSystem没有区别
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; // 设置它的frame(位置)
btn.frame = CGRectMake(20, 30, 335, 30); // NSLog(@"%f, %f", btn.frame.size.width, btn.frame.size.height);
// btn.frame.origin // 原点坐标
// btn.frame.size // 大小 // 设置标题
// UIControlStateNormal 普通状态
// UIControlStateHighlighted 高亮状态
[btn setTitle:@"This is a Button" forState:UIControlStateNormal];
[btn setTitle:@"Heightlighted" forState:UIControlStateHighlighted]; // 设置Button的字体
btn.titleLabel.font = [UIFont systemFontOfSize:30]; // 调整Title位置
// top left bottom right 的偏移
btn.titleEdgeInsets = UIEdgeInsetsMake(0, -100, 0, 0); // 主题颜色
btn.tintColor = [UIColor whiteColor]; // 背景颜色
btn.backgroundColor = [UIColor redColor]; // 添加点击事件
// 让 target(谁) 去做 action (什么事)
// 让AppDelegate对象去执行 btnClicked: 这个函数
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; // 把Button添加到Window上
[self.window addSubview:btn]; /******
第二个Button
******/ UIButton *secondBtn = [UIButton buttonWithType:UIButtonTypeCustom];
secondBtn.frame = CGRectMake(20, 70, 335, 30);
[secondBtn setTitle:@"Seconde Button" forState:UIControlStateNormal]; // clearColor 透明颜色
secondBtn.backgroundColor = [UIColor clearColor]; // 设置图片 // 加载项目中的图片
UIImage *image = [UIImage imageNamed:@"bc_btn_blue"]; NSLog(@"%f, %f", image.size.width, image.size.height); UIImage *heightlightedImage = [UIImage imageNamed:@"test"]; // 设置Button的背景图片
[secondBtn setBackgroundImage:image forState:UIControlStateNormal];
[secondBtn setBackgroundImage:heightlightedImage forState:UIControlStateHighlighted]; // 设置Button的图标
// 图标这里,只会要图片的形状
UIImage *iconImage = [UIImage imageNamed:@"IconEye"];
UIImage *heightlightedIconImage = [UIImage imageNamed:@"IconFlag"];
[secondBtn setImage:iconImage forState:UIControlStateNormal];
[secondBtn setImage:heightlightedIconImage forState:UIControlStateHighlighted]; // secondBtn.tintColor = [UIColor redColor]; [self.window addSubview:secondBtn]; self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible]; return YES;
} - (void)btnClicked:(UIButton *)btn
{
NSLog(@"2222"); }

如果对你有帮助,请关注我哦!

UI第二节——UIButton详解的更多相关文章

  1. 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳

    学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 25 转载请注明出处!️ 目录 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 ...

  2. 第7.20节 案例详解:Python抽象类之真实子类

    第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一.    案例说明 本节定义 ...

  3. 第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法

    第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法 上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容. 一.    案例说明 本节定义了类Sta ...

  4. 第7.16节 案例详解:Python中classmethod定义的类方法

    第7.16节  案例详解:Python中classmethod定义的类方法 上节介绍了类方法定义的语法以及各种使用的场景,本节结合上节的知识具体举例说明相关内容. 一.    案例说明 本节定义的一个 ...

  5. 第7.13节 案例详解:Python类变量

    第7.13节 案例详解:Python类变量 上节介绍了类变量的定义和使用方法,并举例进行了说明.本节将通过一个更完整的例子来说明. 一.    定义函数dirp def dirp(iter): ret ...

  6. UI第六节——UINavigationController 详解

    1. UINavigationController 是一个容器类.里面盛放的是UIViewController. 容器的意思是,如果你不放入UIViewController,里面就是空的,什么也没有. ...

  7. iOS开发——UI篇OC&transform详解

    transframe属性详解 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基 ...

  8. UI第四节——UIImageView详解

    - (void)viewDidLoad { // super调用是必须的 [super viewDidLoad]; UIImage *image = [UIImage imageNamed:@&quo ...

  9. UI第十六节——UITabBarController详解

    一.UITabBarController主要用来管理你提供的content view controllers,而每一个 content view controller则负责管理自己的view层级关系, ...

随机推荐

  1. java.io.IOException: No FileSystem for scheme: hdfs

    在这篇文章中,介绍了如何将Maven依赖的包一起打包进jar包.使用maven-assembly打成jar后,将这个jar提供给其他工程引用的时候,报出如下错误: log4j:WARN No appe ...

  2. chmod权限设置

    一.其语法格式为:chmod [who] [opt] [mode] 文件/目录名 1.其中who表示对象,是以下字母中的一个或组合: u:表示文件所有者 g:表示同组用户 o:表示其它用户 a:表示所 ...

  3. OpenGLES入门笔记四

    原文参考地址:http://www.cnblogs.com/zilongshanren/archive/2011/08/08/2131019.html 一.编译Vertex Shaders和Fragm ...

  4. NOIp 0924 水题记

    这场貌似是gcd专场? 第一题很有意思,模拟gcd的过程即可. //0924 candy //by Cydiater //2016.9.24 #include <iostream> #in ...

  5. mysql数据库中标的key的含义

    四种Key: Primary Key, Unique Key, Key 和 Foreign Key. 1.如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非 ...

  6. SVN Access to ‘/svn/Test/!svn/me’ forbidden,不能更新解决办法

    今天上班,使用公司配置的电脑进行项目的更新.SVN报如下错误, SVN Access to '/svn/Test/!svn/me' forbidden,不能更新解决办法 很有意思: 开始以为自己的SV ...

  7. HIbernate的写法总结

    普通表操作 普通操作莫过于CRUD,建好表了之后对表的数据进行操作.详见代码. package package2; import org.hibernate.Session; import org.h ...

  8. js日期加减

    先补充下基础知识: var myDate = new Date(); //myDate默认返回当前时间 myDate.getYear(); //获取当前年份(2位) myDate.getFullYea ...

  9. 根据wsdl文件生成webservice 的.cs文件 及 生成dll C#调用

               Visual Studio 2013->Visual Studio Tools->VS2013 开发人员命令提示 命令行输入 wsdl E:\WS.wsdl /out ...

  10. 使用mybatis-generator自动生成model、dao、mapping文件

    参考文献:http://www.cnblogs.com/smileberry/p/4145872.html 一.所需库 1.mybatis-generator库 2.连接DB的驱动(此以mysql为例 ...