一、初入iOS
1.1 学习iOS开发
学习iOS最为重要的是跟随课程进度,视频中老师讲解的要下来经常练习,其次是具备较强的自学能力,对于开发学习资料有两种来源,其一为:查阅官方文档包括。其二为:各种开发者交流社区。
目前课程进度为对iOS界面控件的学习。iOS中有许多的界面控件其中:
1、UIButton类是iOS的按钮类。
2、UILabel类是iOS的标签类,负责显示文本。
3、UIImage类是图片类,负责将图片封装成对象。
3、UITextField类是iOS的文本框类,供用户在指定区域输入一行值。
4、UITextView类是多行文本框类,可以输入多行文字。
5、UIAlertController类是警报窗,可以弹出对话框,并且对话框其它区域不能点击。
6、UISwitch类是开关按钮,只有0和1两个值,一般用于对是和否的设置。
7、UISegmentedControl类是分段按钮,和开关按钮一样是值改变事件。
8、UISlider类是滑块按钮,如对亮度的调节就可以用滑块。
9、UIProgressView类是进度条类,可以告诉用户,目前的进度。
等等。这些控件都有相应的类方法和对象方法,还有各自的特定属性供开发者自定义自己的界面。下来应该多多练习和熟悉这些界面控件。
2.2 初学iOS
iOS是为移动设备开发应用程序,所以我觉得开发一个iOS应用最为重要的是两点:功能强大和操作简单。功能强大是用户选择移动应用的原因,操作简单是移动应用留住用户的关键。
从Single View Application开始,学习iOS应用程序的开发。(iOS6.0以前其实提供了,纯代码的开发工程,更新后就取消了,我也不知道为什么,但是我觉得纯代码的开发工程更适合新手学习)
先看文件结构:AppDelegate类顾名思义是应用程序代理类。其中实现文件中的方法是整个程序运行的生命周期,这些方法是由系统自动调用,而不能手动调用。
写在这些方法中的代码就是在这种状态下,程序应该干些啥子。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions //程序发射完成,就是运行完了欢迎界面。进入main窗口。
- (void)applicationWillResignActive:(UIApplication *)application//程序将要进入不活动状态,大概意思是说,其它程序打断这个程序的运行。比如有人给你打电话。
- (void)applicationDidEnterBackground:(UIApplication *)application//程序已经进入后台。意思是说用户按了home键,或者跳转。
- (void)applicationWillEnterForeground:(UIApplication *)application//程序将要进入前台。于上面相反。
- (void)applicationDidBecomeActive:(UIApplication *)application//程序已经变成活动状态,和不活动状态相反。
- (void)applicationWillTerminate:(UIApplication *)application//程序将要终止。就是说用户手动上滑程序,强制关闭应用。
接下来是ViewController
我们可以看到,ViewController继承自UIViewController,就是说ViewController是视图控制器的子类,什么是视图控制器呢?我理解是相当于一个容器,其名可以放任何可与用户参生交互的东西,而且只有放在这个上面,我们才能看到。其实现文件中有两个方法:
- (void)viewDidLoad {
[super viewDidLoad];
}//view加载完后,先调用父类的加载方法,这个明显体现了多态,重写了父类的加载方法。写在这个方法中的代码将在界面加载完成后执行。
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}//也是重修父类的方法,意思是收到内存警告。也就是说,移动设备内存不足时,你该干什么。
Main.storyboard是故事版,其绑定的类是上面的ViewController,是方便我们可视化设计界面的一个工具。
Assets.xcassets是iOS提供给我们方便管理图片的工具。其默认创建的一项AppIcon是管理应用程序的图标。
LaunchScreen.storyboard是发射界面设计故事版,管理应用程序进入时,首先看到的欢迎界面,其随后会自动消失。
info.plist这个文件,我的理解时管理整个应用程序的各种属性,比如状态栏的显示,程序界面的主入口之类的。
main函数就不多说了。
二、Button
2.1 UIButton
UIButton类是iOS提供给我们的可点击按钮控件,这个控件应该分成两部分来理解。一个是提供信息功能,一是时间响应功能。
在信息功能中,用户可以自定义的属性有:
UIButton but=[UIButton buttonWithType:XXXX]//创建一个button控件,其显示类型可以自定义,iOS提供了很多UIButtonType类型,其实质是一个枚举值。
[but setTitle:XX forState:XX]//第一个参数是设置,在按钮上显示的文字(注意:有些按钮类型是不会显示文字的),是NSString类型,第二个参数是在什么情况下显示(这个需要下来仔细的熟悉一下)]
but.titleLabel.textColor=[UIColor redColor];是设置按钮上显示文字的颜色。
but.titleLabel.textAlignment//是设置按钮显示的文本格式。
but.tag=XX//是设置tag值,作用是标示此按钮。
but.frame=CGMakeRectMake(xx,xx,xx,xx)是设置按钮显示的文字和大小。
如果按钮的Type是Custom,还可以为按钮添加图片:[but setImage:[UIImage imageNamed:图片名] forState:在那种状态下显示];
在响应功能中,要给这个按钮设置一个Target,代码如下:
[but addTarget:这个由谁去处理 action:处理的方法(通过@selector()取方法地址)forControlEvents:触发这个Target的事件];