- (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. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

    rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一 ...

  2. java-HashMap方法讲解

    前言:Java8之后新增挺多新东西,在网上找了些相关资料,关于HashMap在自己被血虐之后痛定思痛决定整理一下相关知识方便自己看.图和有些内容参考的这个文章:http://www.importnew ...

  3. ruby 淘宝镜像

    由于国内GFW原因,导致无法安装gem库文件.故选择淘宝镜像, 如何使用? $ gem sources --remove https://rubygems.org/ $ gem sources -a ...

  4. [COCI2012Final]Pro1

    校内OJ上的题. 数据范围非常小,用暴搜就可以,加点剪枝阶乘级别的复杂度竟然可以跑得比$O(N^4)$的算法还要快QAQ. 我用的是Floyd,参考了别人的代码.大概就是先跑个Floyd把点点之间路径 ...

  5. Objective-C学习笔记类目、协议

    不是所有的方法都可以被覆盖的!比如:intValue就不能被覆盖!! 原因正在查找中! 别人的电脑上却可以! 类目.h件 #import <Foundation/Foundation.h> ...

  6. mysql数据库添加索引优化查询效率

    项目中如果表中的数据过多的话,会影响查询的效率,那么我们需要想办法优化查询,通常添加索引就是我们的选择之一: 1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `t ...

  7. C# 文件操作大全

    1.创建文件夹//using System.IO;Directory.CreateDirectory(%%1); 2.创建文件//using System.IO;File.Create(%%1); 3 ...

  8. 9月20日下午JavaScript函数--递归

    例题1:公园里有200个桃子,猴子每天吃掉一半以后扔掉一个,问6天以后还剩余多少桃子? var sum = 200; for(var i= 0;i<6;i++) { sum = parseInt ...

  9. JavaWeb学习笔记——开发动态WEB资源(三)显示当前时间

    该工程的功能是实现在页面中显示当前的时间 以下的代码是HelloServlet.java中的代码 package helloapp2; import java.io.IOException; impo ...

  10. JavaWeb学习笔记——Tomcat配置

    使用的Tomcat版本是apache-tomcat-6.0.20 详细的环境变量配置参考<windows 7系统安装与配置Tomcat服务器环境> 网址为http://jingyan.ba ...