iPhone Development Via Xcode5 vol.02

2024-04-01 17:32

本文主要是介绍iPhone Development Via Xcode5 vol.02,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这一章,我们的目标是做一个简单的应用,以此了解一些iOS开发的基本概念。

我们就做一个考试作弊应用,应用有一个选择器,选择器分两列,左侧是题目序号,右侧是题目答案,应用还有一个按钮,点一下就可以发送答案。从分析来看,我们的应用需要3个控件,一个标签,一个选择器以及一个按钮。在iOS开发中,选择器可以使用Picker View控件,这是一种固定大小的控件,使用滚轮显示。我们首先创建工程,点开Main_iPhone.storyboard界面,将控件一一拉上去进行布局。


Picker View控件使用UIPickerView类,要使其正常工作,需要有一个代理及一个数据源。这是一种MVC思想,控件只负责界面的展示,具体展示的数据取决于数据源,而数据及消息的处理取决于代理中的实现。要实现UIPIckerView的数据源和代理,只要实现UIPickerViewDataSource及UIPickerViewDelegate协议即可。协议使Object-C的一个概念,相当于Java语言中的接口。

首先在ViewController.h中添加声明:

@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDataSource>
{NSArray *questions;NSArray *answers;IBOutlet UIPickerView *selector;
}@property UIPickerView *selector;@end

接着在ViewController.m中对相应函数进行实现:

#import "ViewController.h"@implementation ViewController@synthesize selector;- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{// 因为我们只有2列,所以直接返回2return 2;
}- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{if (component == 0) { //每一列序号从0开始顺序排列,第一列为题目序号return [questions count];} else if (component == 1) {return [answers count];}return -1;
}// 这是协议的一个可选实现函数,返回pickerView特定单元格的标题名
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{switch (component) {case 0:return [questions objectAtIndex:row];break;case 1:return [answers objectAtIndex:row];default:break;}return @"";
}- (void)viewDidLoad
{[super viewDidLoad];questions = [[NSArray alloc] initWithObjects: @"第一题", @"第二题", @"第三题", @"第四题", @"第五题", nil];answers = [[NSArray alloc] initWithObjects: @"A", @"B", @"C", @"D", nil];
}- (void)didReceiveMemoryWarning
{[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end


Picker的每一行称之为row,每一列称之为component。Xcode5很方便的一点是,对于必须要实现的协议函数,如果在.m文件中没有实现,Xcode5会给出警告信息,这样我们就可以方便的对所有必须的函数进行实现了。



代码中也初始化了数据。viewDidLoad函数会在视图被加载完成时执行,通常进行一些初始化工作。值得注意的是,不要忘记@synthesize语句,不然Picker控件虽然看起来工作正常(能旋转),但值不会被赋予进去,因为程序找不到相应的set函数。

现在开始进行连接,像上一章一样,打开视图层次列表,右键选择picker(Ctrl+点击或双指点击触摸板),选择dataSource及delegate分别拖动到View Controller上建立连接。


再选择New Referencing Outlet,拖动至View Controller上与selector建立连接。最后完成按钮功能部分。在头文件中声明函数并在.m文件中实现点击按钮发送答案代码,为了简单起见,这里我们只是让它打印了相应的日志信息。将按钮与相应代码建立连接。现在我们可以执行一下看下我们的成果了~(吐槽一下,iOS7扁平化设计的picker真心丑)



这篇关于iPhone Development Via Xcode5 vol.02的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867739

相关文章

3个恢复方法详解:iPhone手机快速找回备忘录

当我们在工作或者是学习时,总会有一些灵光乍现的好想法,我们通常会将这些想法记录在iPhone手机备忘录中,以便随时查看。但是,如果出现不慎删除备忘录的情况,iPhone该如何找回备忘录呢?不用担心,本文专门为大家整理了3个方法,可以帮助大家快速找回那些不慎删除的备忘录。下文将展开3个恢复方法的详细介绍。 方法一:在【最近删除】里找回备忘录 苹果手机备忘录误删怎么恢复?苹果手机的备忘录如

iPhone 16或将不支持微信?谣言还是事实?

iPhone 16或将不支持微信?谣言还是事实? 近日,一则关于“iPhone 16可能不支持微信” 的传言如同一颗重磅炸弹,引爆了社交媒体,特别是在微博上,相关话题迅速占据热搜榜单,引发了无数网友的热议和担忧。然而,事实究竟如何?这背后又隐藏着哪些不为人知的博弈?今天,猫头虎技术团队就带大家一探究竟。 猫头虎是谁? 大家好,我是 猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、

Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)

json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子。 而不格式化的时候json和xml 又是一个普普通通的字符串,在网络通信的时候也只需要请求一次,而不用每次为得到木一个值而重复的请求服务器或者目标主机, json和xml 都采用 键 - 值 的形式来存放数据。 xml 使用:

如何录制黑神话悟空的游戏BGM导入iPhone手机制作铃声?

在游戏的世界里,总有那么一些旋律,能够触动玩家的心弦,让人难以忘怀。《黑神话悟空》以其精美的画面和动人的背景音乐,赢得了无数玩家的喜爱。如果你也想将游戏中的背景音录制下来,制作成个性化的m4r格式铃声,那么请跟随本文的步骤,一起探索如何实现这一目标。 步骤一:使用嗨格式录屏大师录制游戏背景音 #1下载并安装嗨格式录屏大师:首先,你需要访问嗨格式录屏大师的官方网站,下载并安装这款专业的录

【Xcode】当iphone升级成15.0.1版本以后,显示Unsupported OS version

1.打开文件夹: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 2.将14.5文件夹复制一份,改名成对应的版本,例如15.0,然后重新选择iphone(如果还是不行,关闭xcode,重新打开xcode)

iPhone出现4013错误的和解决方案分享

在苹果设备用户群体中,遇到iTunes错误4013是一个颇为棘手的问题。这个错误通常发生在尝试更新iOS系统、恢复iPhone或iPad时,导致操作无法顺利完成。本文将为你提供一系列实用的解决方案,帮助你摆脱iPhone 4013错误的困扰。 一、了解错误4013的本质 错误4013通常表明iPhone与iTunes之间的通信出现了问题,可能是由于硬件连接不稳、软件冲突、iTunes版本过

[转载]iphone开发--改变UIPageControl里的小点的颜色

原文地址:iphone开发--改变UIPageControl里的小点的颜色 作者:canghai iphone开发--改变UIPageControl里的小点的颜色 iphone的UIPageControl控件可以显示用户huan'dong滑动到的页码。但是里面的小点的颜色时默认的白色。如果背景也是白色的hu话,你就悲剧了。于是乎上网找了一些资料,找到了改变UIPageContr

Fiddler 抓取Iphone / Android数据包

Fiddler 抓取Iphone / Android数据包 想要Fiddler抓取移动端设备的数据包,其实很简单,先来说说移动设备怎么去访问网络,看了下面这张图,就明白了。 可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图)

[论文笔记]Arbitrary-Oriented Scene Text Detection via Rotation Proposals

Arbitrary-Oriented Scene Text Detection via Rotation Proposals 论文地址:https://arxiv.org/abs/1703.01086 github地址:https://github.com/mjq11302010044/RRPN 该论文是基于faster-rcnn框架,在场景文字识别领域的应用。 创新点:生成带文字