多语言展示
当前在线:1590今日阅读:60今日分享:41

基础ios开发——如何建立第一个交互app

俗话说的好都是“活到老,学到老”,如果你想学习的话,那么再没时间也会硬挤出时间来学习的,不过要照顾好自己的身体,身体才是革命的本钱。开始对iOS开发有了兴趣,那么便开始自己从网上查询一些资料,包括课程和视频课程方面的讲解,但是感觉还是听不懂,因为之前都没学过,所以感觉特别费力,如果要想上手快的话,还得要找一些专业的iOS培训方面的学校去学习一下,最后听说了蓝鸥,上网了解了一下,觉得他们的讲师都挺不错,还算靠谱。 这就是学习后的结果,先说一下交互app吧!如何添加按钮,然后为按钮添加响应事件,当点击按钮后,触发按钮的响应事件,从而改变一个Label上的显示文字。如果这个放在VS里面,那么就很容易了,但是在iOS开发里要学的东西太多了,没办法,很多东西都容易混在一起,有点乱,所以要一点点的来,先和大家分享一下如何创建第一个有交互的app!1、创建一个新的project,选择“Single View Application”,命名为“Button Fun”,然后保存。“Automatic Reference Counting”,简称ARC,是ios的一种垃圾回收机制,即自动释放不再使用的变量,释放内存,这个和C#中的垃圾回收有点类似,但是至于他们是怎么实现的,就不知道了,但是大家要记住这个是用来自动释放变量从而腾出内存空间的就ok了。2、添加2个Button和1个Label选中project navigate中的“BIDViewController.xib”,添加Button,直接从Object Library里面拖就可以,在Object Library中找到“Round Rect Button”,拖2个到界面中,完成就可以了。上图中,将2个button分别根据辅助线放到了屏幕的左右两边上下剧中的位置,Label放在最上面,然后将Label拉长,拉到出现辅助线的位置。3、添加button文字,去除Label文字在Xcode中,改变文字的方法有3种,第一种选中button,然后在Attributes Inspector中改变Title的属性值第二种方法是直接用鼠标在button上双击,然后键入需要的文字即可(这个和VS里面有很大的不同,在VS中双击一个按钮是添加一个单击事件,而在Xcode中,则是改变button的文字,所以说是VS比较简单嘛)第三种就是用代码改变文字。分别将左右两个按钮的文字改成“Left”和“Right”,使用同样的方法,去除Label上的文字,并且在Attributes Inspector中将Label的文字对齐方式设置为剧中,最后的界面效果如下4、Outlet和Action,也许这块不是很对,希望大家能够谅解,或是给出最正确的答案,这两个概念是我学习ios开发以来遇到的第一个难点,其实说难不难,就是很搞,一开始没有理解它的意思。Outlet:简单来说就是C/C++里面的指针,指向一个对象,或者说是一个对象的引用,例如一个Label,一个Button等。在C# Winform中,我们会为每一个控件设定一个name,那么在编程时,直接使用这个name就可以对该控件进行操作,但是在ios里面,情况变得有些复杂,控件没有name,就是说你拖一个控件过来,这个控件是没有自己的name的,那么要在code中操作这个控件该怎么办呢?定义一个Outlet,然后把这个Outlet指向该控件,在code中就用这个Outlet来操作这个控件,好吧,稍稍有些复杂。5、为Button添加事件如果要添加事件,首先要创建一个Action,然后建立联系,Xcode比较智能,可以同时进行。a)选中project navigator中的BIDViewController.xib,显示iphone的界面。b)选中Xcode右上角的7个按钮从左到右的第二个Show Assistant editor(快捷键:opion+command+enter,菜单栏View>Assistant选中后的界面如下,会在iphone界面的右边出现BIDViewController.h文件,我们等会就要将button拖到这个文件里,然后进行一些相应的设置,Xcode就会自动帮我们建立控件和Action之间的联系。接下来就是创建Action了,鼠标选中Left按钮不放,按住键盘上的control键,然后鼠标移动到右边的BIDViewController.h文件上,在@interface和@end中间放开鼠标,有一个框弹出来,将上面的值设置成下面的内容。先,我们是创建一个Action,所以Connection选择Action,然后为事件命名为buttonPressed,类型为UIButton,说明是按钮事件,最后单击“Connect”按钮,完成创建。创建完成后的代码如下:(BIDViewController.h)#import@interfaceBIDViewController : UIViewController- (IBAction)buttonPressed:(id)sender;@end在BIDViewController.m中会自动添加该事件的方法- (IBAction)buttonPressed:(id)sender { }为Left按钮添加好Action后,再为Right按钮添加同样的事件,buttonPressed的参数sender可以区分是由哪个button触发了该事件,所以我们不必再为Right button单独的创建一个事件,直接将Right button关联到buttonPressed就可以了,关联的方法也很简单,鼠标选中Right按钮不放,按住键盘上的control键,然后鼠标移动到右边的BIDViewController.h文件的buttonPressed事件上面,然后放开鼠标,关联完成。(此图从书上截取,所以不太清楚)6、为Label添加Outlet添加Outlet的方法和添加Action的方法一样,只是在弹出框的参数选择上略有区别,同样,鼠标选中Label标签,按住control,拖到BIDViewController.h文件中,放开鼠标后,一个弹出框弹出来Connection保留默认值Outlet,Name中填写“textStatus”作为Outlet的名称,其他的选项都保留默认值即可,最后点击“Connect”按钮,Outlet创建完成。创建完成后的代码如下:(BIDViewController.h)@property (weak, nonatomic) IBOutlet UILabel *textStatus;在BIDViewController.m中会自动添加@synthesize,然后在viewDidUnload方法中添加对textStatus的释放代码。(viewDidUnload方法是系统自动创建的,当该View释放时调用,即该View将不显示了,其他View要显示时,该方法会调用到。)@synthesizetextStatus; ... ...- (void)viewDidUnload {[self setTextStatus:nil];[super viewDidUnload];//Release any retained subviews of the main view.//e.g. self.myOutlet = nil;}至此,所有的Action和Outlet都已经添加完毕,button可以触发buttonPressed事件,textStatus指向Label,可以对Label进行操作。7、写Code终于要开始写代码的,真心不容易啊。在BIDViewController.m的buttonPressed方法中添加以下代码(其实也就2行而已)- (IBAction)buttonPressed:(id)sender { NSString*title =[sender titleForState:UIControlStateNormal]; textStatus.text= [NSString stringWithFormat:@'%@ button pressed.', title]; }第一行:titleForState指的是按钮在某个状态时显示的title,UIControlStateNormal得到的是按钮的一般状态,即按钮没有被点击,没有获取焦点时的状态,那么titleForState:UIControlStateNormal获得的是按钮在通常状态下的title。第二行:将title赋值给Label用于显示。两行代码很简单易懂,没有什么难点。8、编译运行快捷键command+B,编译程序。快捷键command+R,运行程序。当然,你也可以直接点Run按钮,直接编译运行程序。程序运行后的开始效果如下点击Left按钮,Label显示“Left button pressed.”,点击Right按钮,Label显示“Right button pressed.”9、最后这一章节看起来比较长,也许有很多人会看的不耐烦,但是如果你是iOS开发的兴趣爱好者的话,那么一定会对你有所帮助的,因为地方的原因不能为大家传图片,希望能够谅解。最后,祝愿同学们能够成为iOS开发方面的人才。
推荐信息