IOS开发学习笔记024-UIButton和UIImageView的区别
一、UIButton和UIImageView的区别
1、 UIImageView 默认只能显示一张图片(默认会填充整个ImageView) 设置方法:image/setImage:
UIButton 默认能显示两种图片,前景和背景(背景会填充整个按钮,前景按尺寸显示) 还可以显示文字 setTitle: forState:
设置方法:setBackgroundImage: forState:/setImage: forState:
2、 UIImageView 默认不能响应点击事件
UIButton 可以响应 addTarget: action: forControlEvents:
3、 UIImageView只显示图片不做事件处理
UIButton既显示图片又响应事件
UIControl 类包含关于事件相关的方法 如addTarget
1 // 2 // SLQViewController.m 3 // UIButton和UIImageView的区别 4 5 6 // 7 // Created by Christian on 15/4/28. 8 // Copyright (c) 2015年 itcast. All rights reserved. 9 // 10 11 12 #import "SLQViewController.h" 13 14 @interface SLQViewController () 15 16 @end 17 18 @implementation SLQViewController 19 20 - (void)viewDidLoad 21 { 22 [super viewDidLoad]; 23 // Do any additional setup after loading the view, typically from a nib. 24 // UIImageView 25 UIImageView *imageView = [[UIImageView alloc] init]; 26 // 设置图片2中方法 27 //imageView.image = [UIImage imageNamed:@"014.png"]; 28 [imageView setImage:[UIImage imageNamed:@"014.png" ]]; 29 // 设置位置 30 imageView.frame = CGRectMake(0, 20, 150, 150); 31 // 添加到视图 32 [self.view addSubview:imageView]; 33 34 35 36 // UIButton 37 UIButton *btn = [[UIButton alloc] init]; 38 // 设置背景图片 39 [btn setBackgroundImage:[UIImage imageNamed:@"bg.png"] forState:UIControlStateNormal]; 40 // 设置前景图片 41 [btn setImage:[UIImage imageNamed:@"016.png"] forState:UIControlStateNormal]; 42 // 设置位置 43 btn.frame = CGRectMake(0, 100, 150, 150); 44 // 设置显示文字 45 [btn setTitle:@"按钮" forState:UIControlStateNormal]; 46 // 给按钮添加监听事件 47 [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; 48 // 添加到视图 49 [self.view addSubview:btn]; 50 51 } 52 53 - (void)btnClick:(UIButton *)btn 54 { 55 NSLog(@"%@",btn); 56 } 57 @end
二、UIView常用方法
1、addSubview:(UIView *) child
添加子控件,最新的子控件显示在最上面
2、NSArray *subviews
通过subviews获取所有子控件,顺序按照assSubView添加排列
3、removeFromSuperview
将控件本身从父控件中移除,控件也会从subviews数组中移除
4、(UIView *)viewWithTag:(int)myTag
返回tag值位myTag的子控件,如果有tag值重复,则取最前面的控件,也包含控件本身。
5、(UIView *)superView
返回父控件
三、随机生成数
1、arc4random() // 随机生成正整数和0
2、arc4random_unform(100) // 随机生成0~99的整数
四、类扩展
类扩展 (class extension 匿名分类)
@interface 类名 ()
{
// 成员变量
}
// 方法声明
@end
作用:
1、写在.m文件中
2、一般用来扩展私有成员变量、@property属性、方法等
本文来自博客园,作者:struggle_time,转载请注明原文链接:https://www.cnblogs.com/songliquan/p/4464454.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?