预备知识
- 掌握swift基本语法和常用控件的使用
- 掌握AutoLayout的基本使用方法
实现步骤
1. 新建工程
打开Xcode -> 点击Create a new Xcode project -> 选择Single View Application -> 输入工程名,语言选择Swift,选择存储路径 -> 回车即可
2. Main.storyboard的构建
2.1 添加控件
需要添加的控件一共有三个
- UITextField
- Web View
- Activity Indicator View
具体操作是从Xcode界面右下角的控件栏里直接拖到视图里(简单粗暴),然后添加布局约束,这个就不多说了,不懂的请自行百度。
2.2 设置控件的属性
直接上图
TextField主要修改的属性
- PlaceHolder (占位符)
- Clear Button 设置为 Appears while editing
- Keyboard Type 设置为 URL
- Return Key 设置为 Go
Activity Indicator View 修改的属性
-
Hides When Stopped 设置为 true
在属性栏那里提上钩即可,若没有设置它会一直显示在屏幕中
3. 将控件链接到ViewController.swift
点击右上角,选择辅助编辑器视图
选中控件,按住control键,拖动鼠标到代码窗口,将控件输出口链接到代码中
同样方法将其余控件链接到代码,最终 ViewController.swift 会多出以下三行代码
4. 添加代码
需要实现 UIWebViewDelegate 和 UITextFieldDelegate 两个协议
import UIKit
class ViewController: UIViewController, UIWebViewDelegate, UITextFieldDelegate
添加一个加载请求的方法
//加载请求的方法
func loadUrl(url: String, web: UIWebView) {
//载入输入的请求
let aUrl = NSURL(string: ("https://" + url)
let urlRequest = NSURLRequest(URL: aUrl!)
web.loadRequest(urlRequest)
}
实现UITextFieldDelegate协议
textFieldShouldReturn 方法是在 Return 键点击后调用
func textFieldShouldReturn(textField: UITextField) -> Bool {
loadUrl(textField.text!, web: webView1)
//解除textField的第一响应者的注册资格,键盘消失;若没有这一步,键盘会一直留在屏幕内
textField.resignFirstResponder()
return true
}
实现UIWebViewDelegate协议
func webViewDidStartLoad(webView: UIWebView) {
//轮圈开始转动
loading.startAnimating()
//状态栏的网络请求轮圈开始转动
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
//网页加载结束
func webViewDidFinishLoad(webView: UIWebView) {
loading.stopAnimating()
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
最关键的一步到了
在ViewDidLoad( )方法里添加以下代码
//添加代理委托
textField.delegate = self
webView1.delegate = self
别看只有小小两行,如果没有添加代理委托,点击Return键会出现键盘无法消失等问题
添加代理委托的方法还可以把 outlet 下的 + 拉到file's owner(一个透视的正方体)上即可
5. 配置 Info.plist
原因是IOS 9后,苹果为了增加安全性,强制所有的APP使用安全的HTTPS链接,而且是默认使用的,好在苹果还提供了一个变通的解决方案,允许明文HTTP通信。
需要在Info.plist文件里增加一项
App Transport Security Settings, 再点旁边的 + ,出现 Allow Arbitrary Loads, 值改为YES 。
6. 最终效果
总结
本人为iOS开发新手一枚,写的不好的或写错的地方,希望各位大侠能帮忙指正。
各位大侠,如果觉得对自己有点用的,欢迎点个赞,也欢迎大家关注@陈炯
谢谢观看此文。