
Swift UI大师之路
秋雨暗千家
男儿不展凌云志,空负天生八尺躯
展开
-
swift UI专项训练42 用Swift代码实现页面跳转与传值
之前我们做过如果要点击一个按钮实现跳转到另一个按钮的办法,有时候我们需要通过一些动作来触发页面的跳转,比如摇动手机,这样就不能直接用连线的办法来实现跳转了,那么如何通过代码的方式来实现跳转呢?依旧使用过渡的方法,在storyboard中把要实现跳转的两张页面连线,注意不再局限于按钮等确定的实体和另一张页面连线,只要跳转关系是从一张到另一张,把两张页面连起来即可,连线选择show,这里就不演示了,注原创 2015-03-24 13:53:26 · 14239 阅读 · 2 评论 -
swift UI专项训练33 Switch开关
开关我们都很熟悉了,平时在iPhone的使用中也经常遇到,主要用来在程序中开启或禁用某项设置。它的属性比较简单:状态State:开还是关开的时候颜色是什么圆形的按钮是什么颜色开和关的时候用图片做按钮背景跟之前的空间做法相同,我们用一个label来展示switch的状态。 @IBAction func sw(sender: UISwitch) { i原创 2015-03-02 12:51:59 · 5239 阅读 · 0 评论 -
swift UI专项训练30 Segmented Control段控件
有时候我们需要给页面分段,也就是分组。基类是UISegmentedControl,下面展示它的属性:基本上就是几段,段的标题,每一段的图像。现在我们来拖动一个段,默认的是两段,把它的段数设定为3,给第三段命名。段的事件是这个段发生了切换,valueChanged事件。现在让我们来实现一下,往界面中拖一个label,让段切换的时候,label中显示段的标题。和上一原创 2015-03-02 01:01:54 · 3113 阅读 · 0 评论 -
swift UI专项训练26 控件综述
控件和视图一样,都是与用户交互的,什么是控件呢?我们常用的滑块、开关等都是控件。控件的基类都是UIControl。控件的内容如下:主要有选中、可以使用和高亮。我们用一个按钮来展示:未选中状态:白底蓝字,现在我们勾选Selected:选中之后变成了蓝底白字,翻转了,这也符合我们日常的使用习惯。如果选中了高亮的话,颜色会变浅发灰:空间支持各种交互原创 2015-03-01 11:03:25 · 2126 阅读 · 0 评论 -
swift UI专项训练32 Stepper微调控件
跟滑块对应的时Stepper微调控件,有时候我们需要精确地变动,那么就不能用滑块来做,Stepper每次以一个固定的值来增加或者减少,它的设置跟滑块比就比较相似了:也有最大值最小值和当前值,不同的是有Step这个值,也就是我们加减时的固定值,叫做步进值。它的行为有三种:Autorepeat是按住自动重复Continuous是连续触发值变更事件Wrap是达到极值后反转原创 2015-03-02 12:26:07 · 5497 阅读 · 0 评论 -
swift UI专项训练25 网址输入完毕事件
首先我们运行一下上一话中写好的程序看看有什么问题。我们发现点击return是没有反应的,这是因为我们之前设置了文本框为这个界面的第一反应者,我们要得到键盘的返回必须对键盘做一些操作。从textfield入手,添加一个方法:func textFieldShouldReturn(textField: UITextField) -> Bool { textField原创 2015-03-01 01:04:36 · 2420 阅读 · 0 评论 -
swift UI专项训练27 UIButton按钮控件
按钮大家都很熟悉了,按钮的基类是UIButton,它的内容设置是比较多的。Type是按钮的样式,system就是我们常见的无边框按钮,如果换成Detail Disclosure,会变成这个样子:也就是我们常说的详细信息。Info light和indoor dark依然是这种样式的图标,只是颜色有变化。Add Contact样式会变成一个加号:按钮的交互事件前原创 2015-03-01 12:49:18 · 2331 阅读 · 0 评论 -
swift UI专项训练29 Page Control页控件
有时候我们的页面很大需要滚动只用滚动条滚动可以不太精确,这就需要用到Page Control,就像我们平时操作iphone一样,每一页都有一些APP,页面的个数是用小点标示的,每次一滑动就会切换页面,当前停留的页面的小点会被点亮。比如我们平时用的天气预报,每一页只能显示一个地方的天气,每次换页可以切换到其他城市。Page Control的属性不多,如下:Pages中的两个数字标示有几页原创 2015-03-01 23:18:10 · 2744 阅读 · 0 评论 -
swift UI专项训练24 构建函数和侦测网页载入事件
构建一个方法用来载入网页的请求:func loadurl(url:String ,web:UIWebView){ let aurl = NSURL(string: url) let urlrq = NSURLRequest(URL: aurl!) web.loadRequest(urlrq) }然后既然控制器继承了代理,那么就需要实原创 2015-02-28 23:06:35 · 2447 阅读 · 0 评论 -
swift UI专项训练28 DatePicker日期老虎机
如果你设置过iPhone中的日期,那么你对日期老虎机一定不陌生。它的基类是UIDatePicker。主要属性有日期、时间和倒计时,如图:mode模式中你可以选择只有日期、只有时间或者都有。local是时区。Interval是时间间隔。后面的是一些约束。Timer是倒计时间隔。拖一个到storyboard中,运行一下看看效果:还是满炫酷的。现在我们原创 2015-03-01 22:35:07 · 2462 阅读 · 0 评论 -
swift UI专项训练43 Swift实现APP引导页
第一次加载APP的时候通常会采用引导页来展示特色或者告知用户如何使用。打开我们的Storyboard,然后导入一个Page View Controller,作如下设置,修改Transition Style:然后给我们的Page View Controller设置一个storyboard的ID为PageViewController。现在你应该很想知道我们如何能编辑我们的pagevie原创 2015-03-24 16:52:37 · 9933 阅读 · 0 评论 -
Swift UI专项训练34 TabBar底部导航栏
TabBar大家应该不会陌生,也是我们经常接触的控件,与navigation类似。首先来看下它的属性:Background用来摄住TabBar的背景图片。Shadow设置阴影。Selection用来设置TabBar选中后会出现的图片。Style:用于设置TabBar的样式,默认的是白底,也可以设置成黑底。Bar Tint:用于设置背景颜色Item posit原创 2015-03-04 20:28:34 · 10360 阅读 · 0 评论 -
swift UI专项训练40 用swift实现打电话和发短信功能
今天来讲一下如何让我们的APP可以访问系统的短信和电话功能。首先来说短信功能,比较简单,跟之前的做法差别不大,要使用UIApplication,它是一个单例。我们的功能是点击一个按钮,然后拨通一个内置的电话,需要在button的action中加入如下语句: @IBAction func phoneBtn(sender:UIButton){ // var url1 = NSUR原创 2015-03-18 11:14:30 · 10979 阅读 · 0 评论 -
swift UI专项训练37 实时显示搜索结果的搜索框SearchBar
今天我们来讲点高级点的知识,在搜索框中输入关键字,下方的tableView自动匹配包含关键字的结果。用我最近在做的一款美食类APP为例。在storyboard中拖入一张表,然后与Vc中的代码关联起来:@IBOutlet weak var tableView: UITableView!获取我们所需要的菜品信息:var caipins = CaipinArray().caipinArr原创 2015-03-12 00:31:42 · 9340 阅读 · 0 评论 -
swift UI专项训练36 ImageVi图片边框阴影
ImageView是我们经常用到的组件,但是我们发现storyboard中图片的属性编辑器中没有对于图片边框的设计。在view中添加一张普通的图片,效果是这样的: 可以看到,白色背景上的深色图片,效果总是有点突兀,我们想要加一个阴影边框来过渡一下图片和背景,打开图片所属的控制器代码,类中所显示的图片名为image,现在来设置它的边框。在viewDidLoad中输入以下代码: imag原创 2015-03-11 10:24:00 · 8510 阅读 · 0 评论 -
Swift UI专项训练35 UIAlertController
之前我们介绍过AlertView和ActionSheet的用法,前者显示在页面中,而后者是从页面底部飞入的。IOS8中有个新的用法UIAlertController,用它就可以同时实现AlertView和ActionSheet,代码变得简便了很多。下面我们command进UIAlertController中看一下它的用法:@availability(iOS, introduced=8.0)c原创 2015-03-10 21:27:31 · 7162 阅读 · 0 评论 -
swift UI专项训练41 用纯代码的方式实现stepper的值传递
之前讲过通过storyboard的方式捕获控件的值,现在我们来试试通过纯代码的方式来实现同样的功能。首先定义一个stepper和一个label,用label来显示stepper的当前值。 self.priceStepper = UIStepper(frame: CGRectMake(150, 120, 100, 20)) self.priceStepper.minimumVal原创 2015-03-21 21:18:23 · 8785 阅读 · 0 评论 -
swift UI专项训练39 用Swift实现摇一摇功能
微信的摇一摇功能想必大家都用过,过年的时候抢红包也没少摇吧,那么用swift语言如何实现这么酷炫的功能呢。摇动属于IOS内置可识别的一种动作,在你需要实现摇动功能的viewcontroller中,在viewDidLoad方法中加入以下代码:UIApplication.sharedApplication().applicationSupportsShakeToEdit = true原创 2015-03-17 09:30:30 · 6770 阅读 · 0 评论 -
swift UI专项训练8 展示数据
现在我想要点击表单中的条目,进行标记,再次点击以取消,那么该如何做呢?依然使用的是tableView的重载方法,在Restaurant中新增一个isCollected的值表示是否收藏,然后回到RestaurantListViewController中,新增: override func tableView(tableView: UITableView, didSelectRowAtIn原创 2015-02-26 00:53:43 · 3619 阅读 · 2 评论 -
swift UI专项训练38 用代码实现滚屏ScrollView
有时候我们在一个页面中放不下所有内容,就需要用到ScrollView,多余的内容可以通过滚动来获取。 首先定义一下宽和高,便于设备配适。let pageWidth = 320 let pageHeight = 800然后在viewDidLoad中初始化一个scrollView:var scrollView = UIScrollView() scrollV原创 2015-03-16 11:07:48 · 10389 阅读 · 0 评论 -
swift UI专项训练31 Slider 滑块
滑块是用一种渐进柔和的方式来展示一种设置或者一个进度。滑块的基类是UISlider,属性比较简单主要是最小值最大值和当前值。设定如下:可以看到下面有两个选项,最小值图像和最大值图像,我们导入两张图片(不好意思没有太合适的图片。。。):它最主要的事件就是值变更,跟我们之前遇到的控件差不多,现在我们让label显示滑动的当前值,最小是0,最大是10,我们上面设置原创 2015-03-02 01:58:26 · 5979 阅读 · 0 评论 -
swift UI专项训练22 设置网址和载入指示器
上一话中我们对网络浏览器的UI做了初步的设置,那么这一话中,我们来设置网址和载入指示器。网址框先设置一个占位符。我们之前讲过了。当我们的网址输错的时候可以修改,设置clear Button为总是出现:网址加载的时候需要有一个进度标志,所以增加一个activity组件:勾选Hides when stopped,然后给它增加一个约束,让它在屏幕的中间,这次选择第原创 2015-02-28 15:29:47 · 2128 阅读 · 0 评论 -
swift UI专项训练13 AlertView警告框
有时候我们进行操作的时候需要一个弹框进行确认或者返回,这就是AlertView。在上一话的工程中,当我们点击停止按钮的时候,弹窗确认。弹窗这个动作是发生在我们点击停止按钮的时候,所以AlertView的代码要添加到停止按钮的action中,代码如下: @IBAction func stopButton(sender: UIButton) { let st原创 2015-02-26 21:15:55 · 4345 阅读 · 0 评论 -
Swift UI专项训练7 数据添加
上一话我们使用了自己定义的控制器之后发现tableview上的餐馆没有了,这一话我们来添加数据,新添加一个餐馆类,这个类我们不需要继承系统的类,直接添加一个swift文件就好import Foundationclass Restaurant { var name = "" var location = "" var score = 10}我简单建一个原创 2015-02-25 21:16:27 · 3256 阅读 · 3 评论 -
swift UI专项训练5 定制视图控制器
我们现在已经添加了两个场景了,尽管我们有默认的视图控制器,但是我们还是想自己定制一下自己的控制器,我们之前一直在storyboard上做操作,现在来些一些代码。在工程目录中右键选择new fie,在IOS的Source中选择Cocoa Touch Class,设置如下图:点击Next,可以看到xcode给我们创建了一个继承了UIViewController的类:原创 2015-02-25 18:05:59 · 3302 阅读 · 0 评论 -
swift UI专项训练4 场景过渡-转场
上一话中我们创建了两个场景,这一话我们想要实现两个场景间的过渡。我们只需要增加一个导航条。选中我们上一话中创建的Table View Controller,点击工具栏上面的editor,选择Embed in(嵌入),选择Navigation Controller,如图:原创 2015-02-25 14:18:11 · 4166 阅读 · 0 评论 -
Swift UI专项训练1 交互
我们都知道在IOS界面编程的时候有IBOutlet和IBAction,前者是引用后者是操作,IBAction有一个参数sender,用来指向操作对象,之前我发布的天气预报的小程序那一话可以看到,如果我们需要一个按钮的点击事件的话那就使用IBAction,如果是一个Label要显示东西的话那就用IBOutlet。 现在来讲一下IBAction中的一些事件类型: 1.Touch原创 2015-02-24 14:29:33 · 3640 阅读 · 0 评论 -
swift UI专项训练11 ActionSheet
ActionSheet字面意思是动作表,那么它有什么用呢?它就是一个菜单,上面有很多选择,让用户选择或者取消,取消按钮式必须有的。它的基类是UIActionSheet,它的参数主要就是菜单上按钮的样式。它可以从视图中显示(ShowInView),也可以从一个按钮中显示(ShowFrom..),此外还需要有回调,我调用菜单,同时我需要把菜单里面的东西拿回来,这就是回调。 新建一个工程原创 2015-02-26 15:33:53 · 4522 阅读 · 4 评论 -
Swift UI专项训练2 本地化及自动布局
首先我们新建一个工程,然后来做本地化,本地化就是根据用户设置的语言等等信息来显示。那么如何来设置呢,打开我们的工程,点开Supporting Files中的Info.plist。如图:右侧第一栏选中China,这样如果遇到一些系统组件,那么会自动变成中文的。 现在我们来编辑第一个页面。在storyboard中增加一个文本框。简单的部分我就不截图了,注意这里的place原创 2015-02-24 15:18:43 · 3693 阅读 · 0 评论 -
Swift UI专项训练6 反向过渡
上一话中我们第二个场景设置过渡的时候选择的是modal类型,不是push。所以用户输入后需要手工返回。导航条上有两个按钮,完成和取消。所以我们要对这两个按钮进行反向过渡,我们需要在事件源头添加@IBAction。代码如下: @IBAction func unwindToList(segue:UIStoryboardSegue){ }以上代码应该添加到Restaurant原创 2015-02-25 18:07:25 · 3386 阅读 · 0 评论 -
swift UI专项训练9 添加数据
今天我们来实现新增数据的功能。在新增餐馆的控制器中初始化一个类: var restaurant = Restaurant()接着创建关联,按住control键选择done按钮拖拽到控制器代码中:会自动生成如下代码:@IBOutlet weak var doneButton: UIBarButtonItem!同理把文本框也拖过去。回到控制器中有一个方法已经为我们准备好了,原创 2015-02-26 12:10:47 · 3617 阅读 · 5 评论 -
swift UI专项训练10 视图共性
讲到视图,先来看看视图的内容: 1.视图的实现:视图的基类是UIView 2.视图的Mode:尺寸填充模式,就是当尺寸超过了我们设定的值的时候采取什么适合屏幕的填充方式。 3.Tag:标记序号 视图的行为: 主要有互动和绘图,互动是指用户的一些操作,可以通过勾选选择是否采用互动和多点触控。 绘图包括:透明度、可见、清除图像内容、截断子原创 2015-02-26 15:27:50 · 3216 阅读 · 2 评论 -
swift UI专项训练15 PcikerView老虎机视图
老虎机相信大家都知道,像一组滚轴,而我们选中其中的某一组值。ios的闹钟选择时间的时候就是这么设计的。在storyboard中拖拽一个pickerview,显示如下:pickerView是没法选择默认值的,图中的几个字符都是和苹果相关的地名,如要设置我们只能去代码中设置。我们来做一个有三个部分的老虎机,每一部分下面有一个标签,来显示选中的内容。分别拖拽到控制器中建立联系:原创 2015-02-27 14:08:28 · 4305 阅读 · 0 评论 -
swift UI专项训练18 ToolBar工具条
工具条是个很重要的内容,什么是工具条呢,它一般显示在屏幕下方,显示一些按钮或者文字,我们可以用系统现成的,也可以用我们自定义的。之前我们讲的都是需要代理模式的,Dlelegate,委托模式。ToolBar属于目标操作,不需要代理。网界面上拖一个Toolbar拖到界面底部。toolbar的元素如下:Style主要是设置样式,比如浅色和黑色的。Bar Tint是设置颜色。原创 2015-02-27 21:20:49 · 4734 阅读 · 2 评论 -
swift UI专项训练23 设置委托和键盘返回
前几话中我们搞定了布局,这一话我们首先要把引用全部加上,就是连线到控制器中UIViewController { @IBOutlet weak var textField1: UITextField! @IBOutlet weak var web1: UIWebView!然后就是代理,首先来看一下我们手机场景界面上的三个按钮:第一个按钮是控制器本身,第二个按钮是原创 2015-02-28 19:16:21 · 2277 阅读 · 0 评论 -
swift UI专项训练20 WebView浏览器
WebView就是一个HTML浏览器,用来显示网页,webView的属性如图: Scaling中如果勾选了后面的话,那么打开的网页会根据webView的尺寸来调整尺寸。Phone Numbers会跟踪电话号码,如果网页中有电话的话会显示一个连接,点一下就可以拨打电话。拖拽一个新的webView然后与控制器连线,用法很简单,加载请求(loadrequest方法)。request也是原创 2015-02-28 02:00:25 · 4425 阅读 · 0 评论 -
swift UI专项训练17 SearchBar搜索条
搜索栏算是UI中很简单的一个操作了,拖一个搜索栏上来。 搜索栏中比较重要的属性是占位符,也就是图中右侧的Placeholder,比如输入“请输入关键字”,显示如下:这一项是设置背景颜色:Options选项会对搜索框进行一些调整:比如我们选择第一项,会显示出一个下拉箭头:接下来看这部分:这个里面有一些很有原创 2015-02-27 18:37:12 · 4463 阅读 · 1 评论 -
swift UI专项训练21 网页浏览器
网页浏览器不同于上一话的webview,我们的网页浏览器不要求用户输入前面的HTTP,并且能实现自动布局,这一话的内容是前几话的总结。新建一个工程,然后拖拽一个text label,我们来看下右下角的一些工具,第一个是对齐约束:第二个是pin约束,上下左右对齐:第三个是清除约束,把设定好的约束清除掉:我们设置如下的一个pin约束,点击add:原创 2015-02-28 15:28:15 · 2393 阅读 · 0 评论 -
swift UI专项训练19 TextView 多行文本
有时候我们所要展示的内容一行文本放不下,这就需要多行文本TextView,拖拽的时候注意上界不要超过电池的小图标。可以在属性编辑器中对多行文本的内容进行更改,按住control键和回车键换行。运行效果如图:如果我们把text选项的Plain改成Attributed的话,我们可以对内容进行进一步的编辑。比如大小字体和颜色等:效果如图:原创 2015-02-28 01:33:49 · 5520 阅读 · 0 评论 -
swift UI专项训练14 ImageView图像视图
图像在swift中基于UIImageView,我们从storyboard中拖一个ImageView出来。 那么我们如何使用工程中的图片呢,点开images.xcassets,在空白处点击右键点击import,导入图片。现在回到storyboard中,就能看到选择图片时有选项了。我选择土豆丝,然后运行一下:可以看到图片被拉长了,在Mo原创 2015-02-27 12:12:22 · 4272 阅读 · 0 评论