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层级关系, ...
随机推荐
- PHP链式操作输出excel(csv)
工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了.下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作.说到链式操作,在jquery中 ...
- django写的留言板
代码见 https://github.com/linux-wang/show-me-the-code/tree/master/dj_test 实际上是 https://github.com/linux ...
- JavaWeb---总结(四)Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下: 范例:将JavaWebDemoProject这个Ja ...
- logback 详解
原创文章,转载请指明出处:http://aub.iteye.com/blog/1103685, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- matlab和C/C++混合编程--调用opencv
最近的我们已经将整个项目搭起来了,项目比较复杂.由于我们做的是检索系统,所以我们用asp.net(c#)做了网页,但是算法的实现是在matlab下,所以我们不得不用matlab生成动态链接库dll,然 ...
- 视频直播APP开发分析
视频直播APP开发到目前为止都还是热门的一个行业,而且发展到现在直播的种类非常多,很多行业都打入了直播行业,再也不是单纯的人物直播这么单一了.视频直播APP开发行业就像是吃螃蟹,来的早的人不懂如何吃, ...
- easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字
先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...
- Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
- winSocket数据传输
服务器端: #include <WINSOCK2.H> #include <stdio.h> #pragma comment(lib,"ws2_32.lib" ...
- js与php转换时间戳
php时间:1368524732 js代码: function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleStri ...