前面写了UIWindow、UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实现是使用系统提供的各种控件,其他的就是自定义实现了,作者目前是入门状态,只能写写基础控件了。
iOS中提供了UIButton、UILable、UITextField、UIImageView等基础UI控件,继承于UIView。这里先拿UIButton练练手,为什么拿UIButton呢,因为UIbutton继承自UIControl,UIControl派生自UIView类,每个控件都有很多视图的特性,包括附着于其他视图的能力,所有控件都拥有一套共同的属性和方法,包含显示内容,点击事件等等,UIControl的子类都有事件处理能力。
图、UIControl
UIButton的定义:
UIButton可使用initWithFrame、buttonWithType两种方式创建:
1)initWithFrame
UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(60, 60, 200, 60)];
btn.backgroundColor=[UIColor greenColor];
[btn setTitle:@"btn1" forState:UIControlStateNormal];
[self.view addSubview:btn];
2)buttonWithType
UIButton *btn2=[UIButton buttonWithType:UIButtonTypeRoundedRect];
CGRect rect=CGRectMake(60, 160, 200, 60);
btn2.frame=rect;
btn2.tag=1001;
btn2.backgroundColor=[UIColor colorWithRed:30/255.0 green:200/255.0 blue:125/255.0 alpha:1.0];
[btn2 setTitle:@"btn2" forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(btn2Pressed) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:btn2];
btn2Pressed方法:
-(void)btn2Pressed{
NSLog(@"button pressed");
}
UIButtonType:
typedef enum {
UIButtonTypeCustom = 0, // no button type 自定义,无风格
UIButtonTypeRoundedRect, // rounded rect, flat white button, like in address card 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片
UIButtonTypeDetailDisclosure,//蓝色的披露按钮,可放在任何文字旁
UIButtonTypeInfoLight,//微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁
UIButtonTypeInfoDark,//白色背景下使用的深色圆圈信息按钮
UIButtonTypeContactAdd,//蓝色加号(+)按钮,可以放在任何文字旁
} UIButtonType;
UIButton常用属性:
//设置对应状态的标题内容default is nil. title is assumed to be single line
- (void)setTitle:(NSString *)title forState:(UIControlState)state;
//设置对应状态的标题颜色
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
//设置对应状态的标题阴影颜色
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;
//设置对应状态的按钮的图片
- (void)setImage:(UIImage *)image forState:(UIControlState)state;
//设置对应状态的按钮背景图片
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
UIButton的UIControlState :
typedef NS_OPTIONS(NSUInteger, UIControlState) {
UIControlStateNormal = 0,
UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set
UIControlStateDisabled = 1 << 1,
UIControlStateSelected = 1 << 2, // flag usable by app (see below)
UIControlStateApplication = 0x00FF0000, // additional flags available for application use
UIControlStateReserved = 0xFF000000 // flags reserved for internal framework use
};
更多属性可参考官方文档。
UIButton添加事件:
UIButton使用如下方法添加事件。
[btn addTarget:<#(id)#> action:<#(SEL)#> forControlEvents:<#(UIControlEvents)#>]
这些事件都是基于触摸、基于值、基于编辑。可相应如下事件。
typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
UIControlEventTouchDown = 1 << 0, // on all touch downs
UIControlEventTouchDownRepeat = 1 << 1, // on multiple touchdowns (tap count > 1)
UIControlEventTouchDragInside = 1 << 2,
UIControlEventTouchDragOutside = 1 << 3,
UIControlEventTouchDragEnter = 1 << 4,
UIControlEventTouchDragExit = 1 << 5,
UIControlEventTouchUpInside = 1 << 6,
UIControlEventTouchUpOutside = 1 << 7,
UIControlEventTouchCancel = 1 << 8,
UIControlEventValueChanged = 1 << 12, // sliders, etc.
UIControlEventEditingDidBegin = 1 << 16, // UITextField
UIControlEventEditingChanged = 1 << 17,
UIControlEventEditingDidEnd = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19, // 'return key' ending editing
UIControlEventAllTouchEvents = 0x00000FFF, // for touch events
UIControlEventAllEditingEvents = 0x000F0000, // for UITextField
UIControlEventApplicationReserved = 0x0F000000, // range available for application use
UIControlEventSystemReserved = 0xF0000000, // range reserved for internal framework use
UIControlEventAllEvents = 0xFFFFFFFF
};
* iOS入门群:83702688
* android开发进阶群:241395671
*/
参考:
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKit_Framework/Introduction/Introduction.html#//apple_ref/doc/uid/TP40006955-CH1-SW1
一、UIKit结构图
分享到:
相关推荐
代码中是JSPatch学习笔记的UI基础部分,其中包括以下内容: 1. 项目环境配置 2. 变量 * 局部变量 * 全局变量 * 使用OC中的枚举类型 `Objective-C 里的常量不能直接在 JS 上使用,可以直接在 JS 上用具体值代替,...
"IOS学习笔记补充1"是对前期学习内容的进一步丰富和完善,旨在帮助开发者更好地理解和掌握iOS开发的关键知识点。这份笔记不仅适用于初学者,对于有一定经验的开发者来说,也是一个有价值的参考资料。 在iOS开发中,...
本资源包含iOS学习UI部分的代码和笔记,内容详细,旨在帮助开发者深入理解并熟练掌握iOS UI的开发技巧。下面将分别介绍压缩包中涉及的几个关键知识点。 1. UIImageView:UIImageView是用来展示图片的控件,常用于...
本篇笔记主要探讨如何利用背景图来美化iOS应用中的按钮,以提升整体视觉效果。 首先,我们来看两个文件:`blueButton.png` 和 `whiteButton.png`。这些通常是PNG格式的图像资源,用于设置按钮的背景。在iOS中,我们...
总之,这份“iOS学习笔记,技术道路走到黑.zip”涵盖了Swift语言基础、iOS应用开发核心概念、UIKit框架、数据持久化和网络请求等多个方面,是深入学习和实践iOS开发的好材料。通过逐步研究并实践其中的内容,开发者...
总的来说,iOS学习笔记涵盖了UI设计和交互的核心元素,对于想要深入iOS开发的初学者而言,这些都是必须掌握的基本技能。通过学习这些内容,开发者能够创建出功能丰富且用户体验良好的应用程序。继续深入学习,还会...
### iOS学习笔记:UI控件详解 在iOS应用开发中,UI控件是构建用户界面的基础元素,它们决定了应用程序的外观和用户体验。本篇将基于“ios学习笔记”中的内容,深入探讨iOS中常用的UI控件及其使用方法,旨在为初学者...
iOS学习笔记 十年生死两茫茫,不思量,自难忘,华年短暂,陈辞岁月悠悠伤, 满腔热血已芜荒,展未来,后生强,战战兢兢,如履薄冰心彷徨, 青丝化雪、鬓角成霜,已是英雄迟暮,人生怎慷慨激昂? 目录 内存管理(五) ...
综上所述,这份"iOS学习笔记"涵盖了Swift编程、UIKit框架、数据管理、网络编程、UI设计、通知服务以及测试与优化等多个重要领域,是全面学习iOS开发的宝贵资料。通过深入学习和实践,你可以逐步成为一名熟练的iOS...
《iOS应用源码分析——构建Notebook(记事本)》 在iOS开发领域,学习和研究源码是提升技能的重要途径。今天我们将深入探讨一个名为"Notebook"的iOS应用源码,这是一个简单的记事本应用,它可以帮助我们理解iOS应用...
懒人笔记使用UIKit来设计和实现UI组件,如UILabel、UIButton、UITableView等。你将看到如何使用这些组件创建界面,以及如何处理用户输入和响应事件。 三、Core Data持久化 为了保存用户的笔记数据,懒人笔记可能...
2. **UIKit框架**:UIKit是构建iOS用户界面的主要工具,包括视图(UIView)、控制器(UIViewController)和各种UI元素(如UILabel、UIButton)。记事本应用会用到UITextField和UITextView来实现文本输入,可能还有...
该压缩包文件“IOS应用源码——录音笔记for ipad(录完上传到dropbox).zip”包含了开发一款iOS应用的源代码,该应用专为iPad设计,具有录音功能,并且能够将录制的笔记自动上传至Dropbox云存储服务。这个项目可能是...
在“ios开发学习笔记(三)”中,博主可能还会讨论调试技巧,如使用Xcode的调试器,理解断点、变量观察以及性能分析工具。此外,可能会涉及多线程编程,如GCD(Grand Central Dispatch)和OperationQueue,以及内存...
本篇笔记主要关注的是Xamarin中的iOS界面设计工具——Xib。 Xib(Interface Builder Document)是Apple提供的界面设计工具,它是iOS开发中的一个重要组成部分,用于设计和布局应用的用户界面。Xib文件本质上是XML...
这份"iOS史上最全的OC笔记"无疑是学习OC语言的重要参考资料。以下是对笔记内容的详细解读: 1. **基础概念**:OC是C语言的超集,它引入了消息传递机制和动态类型,使得代码更具灵活性。笔记会详细解释类、对象、...
【标题】"IOS 菜鸟笔记 之 项目 一 ( 源码 )" 提供的是一个初学者级别的 iOS 开发项目实例,通过源代码的形式帮助开发者了解 iOS 应用的基本架构和开发流程。这个项目可能是从创建一个新的 Xcode 工程开始,到实现...
在Swift编程语言中,开发iOS应用时,UI(用户界面)的设计是至关重要的,特别是当我们要仿造知名应用如印象笔记的首页UI时。印象笔记以其简洁、高效的界面设计受到用户的喜爱,因此学习如何实现这样的界面对于提升...
在iOS学习过程中,我们会涉及到许多核心概念和技术,这些知识点构成了iOS开发的基础。下面将详细讲解这些关键点。 首先,我们要了解iOS系统的基本架构。iOS是苹果公司为iPhone、iPad等移动设备开发的操作系统,它...
笔记可能会详细讲解如何创建和管理UI元素,如UILabel、UIButton、UITableView等。 3. **App生命周期**:iOS应用有其特有的生命周期,包括启动、暂停、恢复和退出等状态。开发者需要理解这些状态以便正确管理应用的...