从零开始学iPhone开发(2)——控件的使用
这一节我们开始学习iOS中简单控件的使用。
在iOS编程中,简单的控件有很多,其中主要的用的多的有:
UILabel,UIButton,UISegmentedControl, UITextField, UISlider, UISwitch
等。现在我们来学习使用这些控件。
1.首先我们学习在xib上来使用,
如下图,在工程中新建一个TestComponentViewController,并且选中With xib复选框,如下图
然后点击TestComponentViewController.xib文件,拖动右下角的控件到界面上(类似VS),如下图常用控件都可以直接拖进去。
现在我们需要对这些控件进行操作,该如何做呢?这里演示UILabel和UIButton的操作,其它操作类似。
如下图,我们首先在TestComponentViewController.h文件中定义需要操作的控件成员变量(以IBOutlet修饰),并且定义点击UIButton后触发的消息函数(以IBAction来修饰),代码如下:
#import <UIKit/UIKit.h> @interface TestComponentViewController : UIViewController{ IBOutlet UILabel *_label; IBOutlet UIButton *_button; } -( IBAction )buttonClicked:( id )sender; @end |
现在我们需要把代码和xib中的拖到界面上的控件连接对应起来,这样代码操作的就是xib上面的控件。如下图:
对UILabel和成员变量_label进行连接的做法,类似UIButton和成员变量_button可进行同样的连接,消息函数和_button也可以进行同样的连接。
然后我们在TestComponentViewController.m中实现-(IBAction)buttonClicked:(id)sender;消息,实现代码如下:
-(IBAction)buttonClicked:(id)sender { _label.text = @"New Clicked Message Text"; [_button setTitle:@"Clicked" forState:UIControlStateNormal]; }
现在我们可以运行程序了,运行效果如下:
(1) 点击Button前 (2) 点击Button后
现在我们学会了简单的UILabel和UIButton的使用。其它的空间使用类似,但是有些函数触发不太一样。UIButton默认触发函数事件是TouchupInside,而UISegmentedControl默认是ValudeChanged。
2.我们使用纯代码来进行编辑我们新建TestMenuComponentViewController类,不添加xib文件。我们在viewDidLoad函数中来实现这些控件的新建和初始化代码如下: |
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. _button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; _button.frame = CGRectMake(35.0, 57.0, 100.0, 44.0); [_button setTitle:@"Button" forState:UIControlStateNormal]; _label = [[UILabel alloc] initWithFrame:CGRectMake(35.0, 20.0, 245.0, 21.0)]; _label.text = @"Label"; [_button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_label]; [self.view addSubview:_button]; }
运行效果如下:
<em id = "__mceDel" ><img src= "//images0.cnblogs.com/blog/41517/201307/31124316-7c69594ba0ae4fe280f90ec5ad9a9978.png" alt= "" ><img src= "//images0.cnblogs.com/blog/41517/201307/31124323-c971cee8a83c4fd7af445abd5a57a0a5.png" alt= "" ><br><br>项目源代码链接:<br><br></em> |
http://115.com/lb/5lbfksd5#
TeachingProject.zip
115网盘礼包码:5lbfksd5
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
2010-07-31 (转)symbian 接入点选择 & ini文件读写
2009-07-31 从头学习Drupal--基本概念和架构