UI第二节——UIButton详解
- (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详解的更多相关文章
- 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳
学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 25 转载请注明出处!️ 目录 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 ...
- 第7.20节 案例详解:Python抽象类之真实子类
第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义 ...
- 第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法
第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法 上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容. 一. 案例说明 本节定义了类Sta ...
- 第7.16节 案例详解:Python中classmethod定义的类方法
第7.16节 案例详解:Python中classmethod定义的类方法 上节介绍了类方法定义的语法以及各种使用的场景,本节结合上节的知识具体举例说明相关内容. 一. 案例说明 本节定义的一个 ...
- 第7.13节 案例详解:Python类变量
第7.13节 案例详解:Python类变量 上节介绍了类变量的定义和使用方法,并举例进行了说明.本节将通过一个更完整的例子来说明. 一. 定义函数dirp def dirp(iter): ret ...
- UI第六节——UINavigationController 详解
1. UINavigationController 是一个容器类.里面盛放的是UIViewController. 容器的意思是,如果你不放入UIViewController,里面就是空的,什么也没有. ...
- iOS开发——UI篇OC&transform详解
transframe属性详解 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基 ...
- UI第四节——UIImageView详解
- (void)viewDidLoad { // super调用是必须的 [super viewDidLoad]; UIImage *image = [UIImage imageNamed:@&quo ...
- UI第十六节——UITabBarController详解
一.UITabBarController主要用来管理你提供的content view controllers,而每一个 content view controller则负责管理自己的view层级关系, ...
随机推荐
- java.io.IOException: No FileSystem for scheme: hdfs
在这篇文章中,介绍了如何将Maven依赖的包一起打包进jar包.使用maven-assembly打成jar后,将这个jar提供给其他工程引用的时候,报出如下错误: log4j:WARN No appe ...
- chmod权限设置
一.其语法格式为:chmod [who] [opt] [mode] 文件/目录名 1.其中who表示对象,是以下字母中的一个或组合: u:表示文件所有者 g:表示同组用户 o:表示其它用户 a:表示所 ...
- OpenGLES入门笔记四
原文参考地址:http://www.cnblogs.com/zilongshanren/archive/2011/08/08/2131019.html 一.编译Vertex Shaders和Fragm ...
- NOIp 0924 水题记
这场貌似是gcd专场? 第一题很有意思,模拟gcd的过程即可. //0924 candy //by Cydiater //2016.9.24 #include <iostream> #in ...
- mysql数据库中标的key的含义
四种Key: Primary Key, Unique Key, Key 和 Foreign Key. 1.如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非 ...
- SVN Access to ‘/svn/Test/!svn/me’ forbidden,不能更新解决办法
今天上班,使用公司配置的电脑进行项目的更新.SVN报如下错误, SVN Access to '/svn/Test/!svn/me' forbidden,不能更新解决办法 很有意思: 开始以为自己的SV ...
- HIbernate的写法总结
普通表操作 普通操作莫过于CRUD,建好表了之后对表的数据进行操作.详见代码. package package2; import org.hibernate.Session; import org.h ...
- js日期加减
先补充下基础知识: var myDate = new Date(); //myDate默认返回当前时间 myDate.getYear(); //获取当前年份(2位) myDate.getFullYea ...
- 根据wsdl文件生成webservice 的.cs文件 及 生成dll C#调用
Visual Studio 2013->Visual Studio Tools->VS2013 开发人员命令提示 命令行输入 wsdl E:\WS.wsdl /out ...
- 使用mybatis-generator自动生成model、dao、mapping文件
参考文献:http://www.cnblogs.com/smileberry/p/4145872.html 一.所需库 1.mybatis-generator库 2.连接DB的驱动(此以mysql为例 ...