iOS技术博客1 - 跳跃的兔子
用了很多的iOS应用,我们被这些界面优美、功能强大、有着极佳用户体验的app所吸引,却少有人想过写出这些优秀app所需的努力。从刚开始尝试iOS开发,到现在逐渐开始下定决心在这个领域有所建树,我被iOS开发的模式所深深地吸引了。它和我之前接触过的所有语言都不一样,苹果是最重视用户体验的公司,因此在它的平台上开发app和其他平台上有些很不一样的地方。当我们想要用C或C++或是java写出一个东西的时候,我们的习惯是先实现他的功能,将这些功能在一个很粗糙的界面甚至是doc界面中显现;而iOS则是先设计出一个相对美观的界面,在界面上添加组件,让它看起来就像一个可以使用的app一样,再一一连接这些组件,为他们添加功能。先明确你的目的,然后再想办法去实现,我被这种思维方式深深吸引。我想,这应该就是所谓的产品。
OK,废话就说到这里,今天的这篇博客,我将为大家展示怎样从一个不知所措的初学者到在自己的iPhone里装上第一个自己的app。
一、仔细思考你是否已经准备好了学习iOS开发
如果你真正想要做好一件事,决心,是必不可少的。一台Mac!这是必须的。有了Mac后,你需要第一时间更新到最新的OS系统,并熟悉使用它,你会深深地沉迷于它的诸多优点。同时,下载最新版本的Xcode;同时你要让你的Apple ID加入苹果开发者。如果你想让你的app至少能够在你的设备上运行,开发者账号是必不可少的,为此,你需要付出每年99刀。对于初学的穷屌丝来说,这还是很艰难的。在此,特别鸣谢强哥,我现在正借用他的开发者账号。
二、学习使用Xcode
Xcode是苹果的开发平台,现在Xcode支持两种语言:object-c和swift。这正是苹果了不起的地方,有些人觉得苹果不过是一个卖硬件的公司,但是其实真正让苹果拿到不可替代的地位的是它出色的软件支持。在这里我介绍一些作为一个真真正正的初学者在刚开始使用Xcode的一些经验总结。
Xcode创建项目需要输入公司名称,即便你没有公司,也要输入一个。建议大家起一个自己不会后悔的名字,并且从此养成一个严谨的性格,认真对待你的每一个行为。iOS开发不需要屌丝程序员,需要的是高大上的工程师。在建项目的时候需要选择语言,你可以选择OC或是swift,oc和c++支持混合编程,swift和oc也支持在一个项目中,但需要在不用的文件内。
右上角的三个相连的按钮分别用来显示/隐藏左侧显示栏、下部显示栏和右侧显示栏。和它相邻的三个连续按钮,第一个用来显示当前选项卡,第二个用来显示助手编辑器,第三个貌似是用来比较的,但是至今没有用过,也还不会用。
当你不想或不能在自己的移动设备上运行程序的时候,你就要用Xcode带来的方便的模拟器,但是再使用,再进行模拟运行的时候,你可以选择在何种设备上运行。但是我在学习的时候曾遭遇一个问题,就是模拟器不可用,在模拟器上运行程序的时候,你必须选择一个运行的设备,但是我的模拟器无法选择设备,也就无法运行程序。这个问题的解决办法是:点击Xcode-Open Developer Tool-iOS Simulator打开iOS模拟器;选择Hardware-Device-Manage Devices...点击界面右下角的‘+’,添加移动设备,问题解决。(再次鸣谢强哥)
以上为我在使用Xcode时所遇到的问题,作为一个初学者,成长是一个漫长而痛苦的过程,在这里写下来,为遇到同样问题的初学者提供一点方便。
三、首个具备功能的app-跳跃的兔子
这个app中 我们将学习使用三个知识点:创建并管理图像动画、滑块和步进控件。
所见即所得的storyboard。前面已经介绍过了,iOS开发注重用户体验,这个用户体验甚至包括了开发人员的体验。在创建iOS程序时,通常是先规划界面,再添加功能。再这个程序中,我们将使用20帧的png图像来实现动画。请注意,Xcode县已不支持jpeg格式的图像,如果导入,则不能识别。我们将事先准备好的图片文件夹直接拖到Images.xcassets,这样就可以在代码和 IB编辑器中轻松使用这些图片了。iOS创建页面只需将所需的组件从Object Library中拖曳到View Controller中即可。在使用View Controller前,你需要把File Inspector中的复选框“Use Size Classes”选择不选。否则你的View Controller将不是屏幕尺寸,影响初学者调整布局。在添加组件后,在Size Inspector中为组件添加约束,只要调整好位置点击添加约束就可以,虽然简单,但是如果你不这么做,如果你改变某一组件的大小,就有可能引起其他组件从屏幕上消失。
创建并连接到输出口和操作。首先,添加输出口。添加输出口只需点击制定组件,按住control键,并从主图像视图拖曳到ViewController.m中编译指令@interface的下方,选择连接类型Outlet。添加操作和添加输出口的方法类似,在选择连接类型的时候,选择Action。添加输出口和操作虽然简单,但是至关重要,用鼠标进行拖曳,如果不够严谨,很容易出错。如果错误的连接了,你的程序会无法运行,对于初学者又往往难以找到错误所在。其实,如果注意观察,你会发现每一行定义输出口和操作的代码前都有一个实心圆,表示已连接到组件。将鼠标指针滑倒圆点,就会显示出该输出口/方法所连的具体是哪一个组件。在审查时,点击弹框中的详细信息,将会为你跳转到在View Controller中的相应组件,右键该组件,你就可以在组件中看到它所连接的方法和输出口、并可以直接对其进行修改操作。注意,如果在连接输出口时需要更改,务必对输出口/操作和连接的组件同时进行更改,否则将无法运行。例如,当你为一个输出口改了名称后,需要重新为该输出口连接组件,同时需要在组件中删除原来的连接。
实现应用程序。
1. 让图像视图显示动画。要使用图像制作动画,需要创建一个图图像对象(UIImage)数组,并将它门们传递给图像视图对象。这些方法都将在视图控制器(ViewController)中的ViewDidLoad方法中实现。为给图像视图配置动画,首先声明一个名为hopAnimation的数组(NSArray),接下来初始化这个数组,这个数组所储存的是用于实现动画的图片,点击图片文件夹你就可以看到,这些图中小兔子的位置和形态是不一样的,这些图片连起来就形成了小兔子在跳跃的动画。这里使用以‘@[’打头的初始化语法。采用这种初始化方式时,只需要提供一个逗号分割对象列表,并以‘]’ 结尾。然后将图像视图imageView的animationImages属性设置为该数组。在这里还需要设置图像视图的另一个属性:animationDuration,它表示动画播放每一次将持续多少秒。如果不设置,播放速度为30帧每秒。我们希望在1秒内播放完所有的帧,因此设置animationDuration=1。
2. 开始/停止播放动画。startAnimating/stopAnimating。调用属性时需要加‘.’,而调用方法时不要加‘.’。如:bunnyView1.animationImages;bunnyView1 startAnimating。
3. 设置动画播放速度:同样使用animationDuration的方法,将滑块的值传入:使用speedSlider.value即可获取滑块的值。
4. 步进控件的方法。首先令滑块的值等于步进控件的值,再调用设置速度的方法
- (IBAction) setIncrement : (id) sender {
self.speedSlider.value=self.speedStepper.value;
[self setSpeed:nil];
}
调用setSpeed时,传递了参数nil/默认情况下,操作方法接受一个sender参数,该参数将自动设置为出发操作的对象。这样,操作便可查看sender,并作出相应的响应。在setSpeed中我们没有使用sender,因此将其设置为nil。
5.
- (UIStatusBarStyle) preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}//设置状态栏颜色为白色,以修复在深色背景下看不清的问题
运行。在Images.xcassets的文件夹下的AppIcon内添加图片作为自己程序的icon,注意icon是指定大小的图片,若大小不合适,依然能够添加,但是运行时会报错显示icon大小不正确。运行完毕后,你的手机里将有了你第一个自己写的iOS程序。
- 大小: 208.2 KB
- 大小: 205.1 KB
- 大小: 259.8 KB
分享到:
相关推荐
ios-webkit-debug-proxy-1.9.0-win64-bin
2. **iOS兼容性**:vuforia-sdk-ios-7-1-31明确指出它适用于iOS 7.1版本及以上,这意味着开发者可以利用这个SDK为运行iOS 7.1及更高版本的iPhone和iPad创建AR应用。然而,随着新版本的iOS系统不断更新,开发者需要...
UnitySetup-iOS-Support-for-Editor-5.5.6f1
WII用的资源IOS57.IOS57-64-v5918.wad
《iOS 15.0定位服务详解:location-cleaned驱动技术解析》 在移动设备操作系统领域,苹果的iOS一直以其安全性和用户体验著称。随着iOS 15.0的发布,开发者和用户对于系统的更新尤为关注,特别是其中的定位服务。...
IOS56-64-v4890.wad
2008年推出 CISCO2950较新IOS映像:c2950-i6k2l2q4-mz.121-22.EA12
思科 cisco ios 镜像 C3640-JK.BIN 文件由多位CCIE水平人员测试使用后拷贝,dy下可用
### iOS技术博客资源汇总 #### 一、概述 在iOS开发领域,持续学习与实践是提升个人技能的关键。本文档汇总了一系列由资深开发者维护的技术博客,涵盖了从基础到进阶的多个方面,对于想要深入了解iOS开发技巧和技术...
思科 cisco ios 镜像 C3640-IK.BIN 文件由多位CCIE水平人员测试使用后拷贝,dy下可用.
这是有关于苹果内购文档的集合,里面主要讲述了内购流程的实现原理!以及苹果充值因苹果保密规则衍生的一系列刷单手段的防刷策略
【】iOS开发视频教程-第01讲-iOS历史介绍【】iOS开发视频教程-第02讲-XCode安装【】iOS开发视频教程-第03讲-UIView_PPT【】iOS开发视频教程-第04讲-UILabel【】iOS开发视频教程-第05讲-UIButton1-PPT讲解【】iOS开发...
iOS 定制摄像头 Cool-iOS-Camera ,Cool-iOS-Camera 是用于 iOS 上完全定制现代摄像头,此应用通过 AVFoundat...
网易airtest for mac必备agent, iOS-Tagent 其实就是 WebDriverAgent 仔细看,会发现iOS-Tagent会比WebDriverAgent简略得多。 iOS-Tagent其实就是WDA的优化版本。 git clone ...
iOS代码混淆工具,iOS源码混淆工具,iOS审核4.3,重复上架,iOS代码混淆|iOS代码混淆工具|过4.3审核|4.3解决|4.3被拒|4.3审核被拒|other被拒|other审核被拒|iOS代码混淆助手|unity3d混淆|cocos2dx混淆|flutter混淆|...
之前遇到的需求,ios上没有类似的实现。搞了好久在网上搜了很多资料都不能解决最后找到了一个c/c++的底层源码,才实现了最后整理了下上传了。是个ios的demo很详细你定能看懂的。运行在xcode环境下,关键算法的文件是...
【标题】:“IOS应用源码Demo-用OCR技术识别验证码-tesseract-毕设学习.zip”是针对iOS平台的一个源码示例项目,它利用OCR(Optical Character Recognition,光学字符识别)技术来实现验证码的自动识别。这个项目...
高通vuforia-unity-mobile-android-ios-4-0-5-beta
Cisco 4506E IOS cat4500e-entservicesk9-mz.152-1.E.bin
CISCO ASA 5505 最新IOS asa844-1-8k.bin