iOS开发基础2-基础控件
1.iOS开发基础1-第一个iOS程序
2.iOS开发基础2-基础控件
3.iOS开发基础6-懒加载、Plist 文件操作、字典转模型、自定义 View 详解4.iOS开发基础5-UIButton5.iOS开发基础4-图像资源6.iOS开发基础3-UIImage7.iOS开发基础14-KVC的应用与底层逻辑8.iOS开发基础13-深入理解 UITableView(二)9.iOS开发基础12-深入理解UITableView(一)10.iOS开发基础11-屏幕适配、Autolayout及 Masonry 框架11.iOS开发基础10-UIButton内边距和图片拉伸模式12.iOS开发基础9-提示框(UIAlertController)13.iOS开发基础8-UIScrollView14.iOS开发基础7-自定义构造方法、layoutSubviews、Xib文件与自定义View15.iOS开发基础30-UITabBarController16.iOS开发基础29-触摸事件及手势识别17.iOS开发基础28-数据存储与沙盒机制18.iOS开发基础27-导航控制器入栈与出栈机制及微博个人详情页19.iOS开发基础26-空20.iOS开发基础25-ARC和MRC深入探析21.iOS开发基础24-UIPickerView、UITextField、KVC、UIDatePicker、控制器及导航控制器22.iOS开发基础23-iOS开发中的Info.plist、UIApplication及其Delegate、UIWindow详解23.iOS开发基础22-键盘通知在iOS开发中的应用24.iOS开发基础21-深入理解通知、代理、KVO和Block在iOS开发中的应用25.iOS开发基础20-UITableView的全局及局部刷新、左滑操作与批量删除26.iOS开发基础19-深入理解和实现不等高的 UITableViewCell27.iOS开发基础18-深入理解 Objective-C Runtime 机制28.iOS开发基础16-使用 `NSTimer` 时避免内存泄露的技巧和最佳实践29.iOS开发基础15-KVO的应用与底层逻辑30.iOS开发基础65-iPad 开发指南31.iOS开发基础64-二维码32.iOS开发基础63-AVFoundation/MediaPlayer33.iOS开发基础62-音频播放34.iOS开发基础61-通讯录35.iOS开发基础60-传感器36.iOS开发基础59-内存优化37.iOS开发基础58-支付宝集成指南38.iOS开发基础57-换肤功能与静态库开发指南39.iOS开发基础56-UIDynamic物理引擎40.iOS开发基础55-利用 UIWindow 实现快速滚动到界面顶部41.iOS开发基础54-CoreLocation42.iOS开发基础53-MapKit 框架43.iOS开发基础47-iOS键盘44.iOS开发基础46-数据安全与HTTPS保护详解45.iOS开发基础45-UIWebview46.iOS开发基础44-网络编程之NSURLSession&AFN47.iOS开发基础43-CocoaPods48.iOS开发基础42-网络编程之文件下载与处理49.iOS开发基础41-网络编程之JSON和XML50.iOS开发基础40-网络编程之NSURLConnection51.iOS开发基础39-RunLoop52.iOS开发基础38-多线程之多图片下载及缓存处理53.iOS开发基础37-多线程之NSOperation54.iOS开发基础36-多线程之GCD55.iOS开发基础35-多线程之NSThread56.iOS开发基础34-多线程57.iOS开发基础33-核心动画(二)58.iOS开发基础33-核心动画(一)59.iOS开发基础32-Quartz2D(二)60.iOS开发基础32-Quartz2D(一)61.iOS开发基础31-Modal 与 Push 详解62.iOS开发基础76-iOS 开发中的属性修饰符详解63.iOS开发基础75-iOS开发中的Block深度解析64.iOS开发基础74-Swift他来了65.iOS开发基础73-24种性能优化技巧66.iOS开发基础72-Xcode 7 升级后的问题与解决方案详解67.iOS开发基础71-应用中的 StatusBar 详解68.iOS开发基础70-TCP与UDP69.iOS开发基础69-应用开发中的 Controller 间通信模式70.iOS开发基础68-图片轮播71.iOS开发基础67-流水布局相册缩放72.iOS开发基础66-UISearchBar 控件指南73.iOS开发基础78-iOS 国际化在iOS开发中,UILabel
、UIImageView
和 UIButton
是三个非常常用的 UI 组件。了解它们的特点、用法及底层实现有助于更好地使用它们。下面是详细的介绍和示例:
UILabel
UILabel
是一个用于显示文本的视图,支持多行文字、富文本、行距、字体等各种样式设置。
特点
- 轻量级:适用于显示静态文本。
- 多行文本:支持多行显示、自动换行。
- 富文本支持:可以通过
NSAttributedString
设置富文本样式。 - 易于使用:通过代码或 Interface Builder 都很容易设置。
用法示例
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, 300, 50)];
label.text = @"Hello, World!";
label.font = [UIFont boldSystemFontOfSize:18];
label.textColor = [UIColor blackColor];
label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:label];
底层实现
UILabel
是 UIView
的子类,它通过 Core Text
或 Text Kit
来绘制文本内容。文本的属性如字体、颜色、对齐方式等会影响其内部 NSAttributedString
对象的属性,这些属性会在 drawTextInRect:
方法中使用以绘制文本。
UIImageView
UIImageView
是一个用于显示图片的视图,支持静态图片和动画。
特点
- 高效的图片呈现:适用于显示静态图片。
- 动画支持:可以显示一系列图片组成的动画。
- 内容模式:支持不同的内容模式,比如
scaleToFill
、aspectFit
、aspectFill
等。
用法示例
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 110, 300, 200)];
imageView.image = [UIImage imageNamed:@"example.png"];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imageView];
底层实现
UIImageView
也是 UIView
的子类,其主要工作是渲染 UIImage
对象。底层通过 Core Animation
来实现图片的展示和动画效果。图片会被渲染到 CALayer
的 contents
属性上。
UIButton
UIButton
是一个可以触发用户操作的按钮,支持文字、图片设置。
特点
- 丰富的状态控制:可以针对不同的状态(正常、选中、高亮、禁用)设置不同的外观。
- 多类型按钮:包括系统按钮、信息按钮、添加按钮等。
- 事件响应:支持多种事件,如
touchUpInside
、touchDown
等。
用法示例
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(10, 330, 300, 50);
[button setTitle:@"Click Me" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
// Action method
- (void)buttonClicked:(id)sender {
NSLog(@"Button clicked!");
}
底层实现
UIButton
是 UIControl
的子类,拥有更复杂的事件处理机制。按钮的不同状态会对应不同的 CALayer
内容及属性。内部使用 target-action
机制处理用户交互事件。
总结
UILabel
优点:
- 轻量级,适用于显示静态文本。
- 易于使用,支持多种文本样式和富文本。
缺点:
- 仅用于显示文本,不支持用户交互。
UIImageView
优点:
- 高效的图片展示,支持静态图片和动画。
- 多种内容模式,实现不同的图片展示效果。
缺点:
- 仅用于显示图片,同样不支持用户交互。
UIButton
优点:
- 支持多种状态,能自定义外观。
- 丰富的事件处理机制,适用于各种用户操作。
缺点:
- 相对复杂,使用情况需要更多配置。
结论
- UILabel 适用于显示静态文本,简单易用但不支持用户交互。
- UIImageView 适用于静态或动画图片的展示,高效显示但无用户交互功能。
- UIButton 则适用于需要触发用户操作的场景,灵活而功能全面,适合处理各种交互事件。
选择合适的 UI 组件不仅能提高应用的性能,也能提升用户的操作体验。在不同的场景下,根据需求选择 UILabel
、UIImageView
还是 UIButton
是非常重要的。
将来的你会感谢今天如此努力的你!
版权声明:本文为博主原创文章,未经博主允许不得转载。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!