https://weibo.com/277195544?refer_flag=1005055013_
上一话中我们讲解了viewController的生命周期。这一话来讲解一下自动布局,之前的Demo中都有涉及自动布局的知识,今天来系统讲解。
本话来讲解一下控制器的Lifecycle(生命周期)。 我们谈到的控制器的生命周期时,其实是在关注这个控制器在生命周期中接收到的一系列消息,这些消息伴随着整个的生命周期。
上几话中我们详细了解了几种segue,我们也了解到了多MVC模式的几种控制器,比如导航、选项卡和分栏,除了这三种多MVC的模式之外,还有一种popover,它跟其他三种不太一样。
上一话我们对Demo的选择界面做了自动布局的相关处理,现在开始连接多个MVC的操作。首先我们需要其他工程中的文件,那么让我们打开另一个app。
上一话我们详细介绍了多MVC模式以及Segue过渡的时候,这一话用一个新的Demo来诠释。 我们新建一个Psychologist的工程。
上一话中我们介绍了多MVC模式并且以导航控制器为例讲解了这三个控制器管理多个MVC的工作原理。
上一话讲完了小人脸Demo,我们也了解了MVC,那么这一话我们来把Demo复杂化,看看多个MVC之间是如何协同工作的。
在这一话中我们将应用上一话学到的知识来为Demo添加手势识别,首先添加一个缩放的功能,其次添加一个拖动功能,使得小人的表情可以随着我们的手指改变。
在之前几话中我们已经知道了如何去绘制视图,以及MVC模式的应用和代理的使用,这一话来讲一下如何识别手势,例如缩放(pinches)、旋转(rotations)、滑动(swopes)、点击(taps) 我们可以获得手势的原始信息,比如起始位置之类的,但是我们很难判断诸如这是一个滑动还是仅仅单纯地向右移动,所以IOS为我们做了底层的封装。
上一话中介绍了扩展和协议的相关知识,这一话我们介绍一个很重要的概念delegation(代理),代理是协议的一个很重要的应用。
扩展就是给一个现存类、结构体和枚举添加新的属性或者方法的小语法。你无需修改目标的源代码,你就可以把想要的代码加到目标上面。
上一话中我们实现了对一个小人表情的绘制,但是我们需要修改代码才能实现表情的变换,而且我们也没有一个明确地模型,这很明显不符合MVC的要求,这一话中我们将要修改它已符合MVC的要求。
这一话的任务是在视图中绘制一个小人脸,你可以控制他的嘴角弧度以表示开心后者伤心。 新建一个工程,然后拖一个空的view进去,对齐蓝线然后适应尺寸,这都是我们之前讲过的内容了。
上一话介绍了视图绘制的一些基本原理,这一话继续展开。UIBezierPath可以绘制许多有趣的图形。
这一话来讲解一下视图的绘制,首先介绍一下相关的结构体 视图中的所有coordinate(坐标)的类型都是CGFloat,CGFloat在Swift中是结构体,在处理视图绘制和手势识别的时候我们使用的都是CGFloat,不要用我们常规的Double和Float。
一个view(视图)是IOS中UIView的子类,标示了屏幕上的一个长方形区域,定义了一个坐标系空间来绘图,并且处理触摸的操作。
这一话来讲一个AnyObject的应用:Property List。 property list不是任何一种类型,它属于一种工具类的东西。
这一话来讲一个AnyObject的应用:Property List。 property list不是任何一种类型,它属于一种工具类的东西。
我们都知道在Swift诞生之前进行IOS开发一直使用Objective-c这门语言。OC和Swift之间需要一个桥接。
处理字符串的难点是字符串的索引和创建字符串等其他的问题以及如何创建一个字符串的子串。 字符串是由Unicode组成的,你不要把Unicode组成的字符串的子串看做Unicode字符,而是把它们拆分成Unicode字素,所以我们不能像数组中那样索引,因为会遇到有的字素是由多个字符组成,这样会把一个完整语义的字素拆成了两个字符从而改变了原意。
新的一话中我们将讲讲Foundation的一些相关知识,首先来看AnyObject。 为了方便理解,你可以任务AnyObject是某种类型,虽然它并不是。
这一话首先来讲写关于init的东西。 首先初始化并不会经常被用到,这是因为类和结构体中的大部分属性都会通过赋值被初始化,或者有些属性是Optional的,这样即使是nil也没关系,可以在之...
在前面的几章中我们经常接触到Optional(可选型),今天来细致讲解一下可选型。
回顾一下我们上一话中的代码: @IBAction func operate(sender: UIButton) { let operation = sender.
继续上一话中的计算器Demo,上一话讲到类必须被初始化,类中的属性也必须被初始化,所以你不能只声明而不给它一个处置,那么问题来了,我们从storyboard中拖拽的@IBOutlet为什么只有声明而不需要初始化呢,这是因为它的类型依旧是一个optional,在你初始化之前已经被赋值为nil了,这也就是为什么你不需要再初始化它的原因。
首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发。
原文链接:http://www.douban.com/group/topic/70990429/ 在Xcode中使用UILabel控件显示单行文本非常简单便捷,可一旦遇到需要使用多行文本时则显得稍显无力。
第一次加载APP的时候通常会采用引导页来展示特色或者告知用户如何使用。打开我们的Storyboard,然后导入一个Page View Controller,作如下设置,修改Transition Style: 然后给我们的Page View Controller设置一个storyboard的ID为PageViewController。
原文地址:http://www.cnblogs.com/sxlfybb/p/3791973.html UIImage这个对象是swift中的图像类,可以使用UIImageView加载显示到View上。
之前我们做过如果要点击一个按钮实现跳转到另一个按钮的办法,有时候我们需要通过一些动作来触发页面的跳转,比如摇动手机,这样就不能直接用连线的办法来实现跳转了,那么如何通过代码的方式来实...
之前讲过通过storyboard的方式捕获控件的值,现在我们来试试通过纯代码的方式来实现同样的功能。
今天来讲一下如何让我们的APP可以访问系统的短信和电话功能。首先来说短信功能,比较简单,跟之前的做法差别不大,要使用UIApplication,它是一个单例。
微信的摇一摇功能想必大家都用过,过年的时候抢红包也没少摇吧,那么用swift语言如何实现这么酷炫的功能呢。
有时候我们在一个页面中放不下所有内容,就需要用到ScrollView,多余的内容可以通过滚动来获取。
今天我们来讲点高级点的知识,在搜索框中输入关键字,下方的tableView自动匹配包含关键字的结果。
ImageView是我们经常用到的组件,但是我们发现storyboard中图片的属性编辑器中没有对于图片边框的设计。
之前我们介绍过AlertView和ActionSheet的用法,前者显示在页面中,而后者是从页面底部飞入的。
TabBar大家应该不会陌生,也是我们经常接触的控件,与navigation类似。首先来看下它的属性: Background用来摄住TabBar的背景图片。
开关我们都很熟悉了,平时在iPhone的使用中也经常遇到,主要用来在程序中开启或禁用某项设置。
跟滑块对应的时Stepper微调控件,有时候我们需要精确地变动,那么就不能用滑块来做,Stepper每次以一个固定的值来增加或者减少,它的设置跟滑块比就比较相似了: 也有最大值最小值和当前值,不同的是有Step这个值,也就是我们加减时的固定值,叫做步进值。
滑块是用一种渐进柔和的方式来展示一种设置或者一个进度。滑块的基类是UISlider,属性比较简单 主要是最小值最大值和当前值。
有时候我们需要给页面分段,也就是分组。基类是UISegmentedControl,下面展示它的属性: 基本上就是几段,段的标题,每一段的图像。
有时候我们的页面很大需要滚动只用滚动条滚动可以不太精确,这就需要用到Page Control,就像我们平时操作iphone一样,每一页都有一些APP,页面的个数是用小点标示的,每次一滑动就会切换页面,当前停留的页面的小点会被点亮。
如果你设置过iPhone中的日期,那么你对日期老虎机一定不陌生。它的基类是UIDatePicker。
按钮大家都很熟悉了,按钮的基类是UIButton,它的内容设置是比较多的。 Type是按钮的样式,system就是我们常见的无边框按钮,如果换成Detail Disclosure,会变成这个样子: 也就是我们常说的详细信息。
控件和视图一样,都是与用户交互的,什么是控件呢?我们常用的滑块、开关等都是控件。控件的基类都是UIControl。
首先我们运行一下上一话中写好的程序看看有什么问题。 我们发现点击return是没有反应的,这是因为我们之前设置了文本框为这个界面的第一反应者,我们要得到键盘的返回必须对键盘做一些操作。
构建一个方法用来载入网页的请求: func loadurl(url:String ,web:UIWebView){ let aurl = NSURL(string: ur...
前几话中我们搞定了布局,这一话我们首先要把引用全部加上,就是连线到控制器中 UIViewController { @IBOutlet weak var textField1: UITextField! @IBOutlet weak var web1: UIWebView! 然后就是代理,首先来看一下我们手机场景界面上的三个按钮: 第一个按钮是控制器本身,第二个按钮是这个界面的第一反应者,我们这个界面的第一反应者是网址这个框,第三个按钮是退出。
上一话中我们对网络浏览器的UI做了初步的设置,那么这一话中,我们来设置网址和载入指示器。