我的环境:OS X Yosemite(10.10.5) Xcode 7.1(7B91b)
1.创建swift项目:
File->new->Project....->iOS->Application->Single View Application: 创建时选择swift语言,选择路径即可。
新创建的项目视图在Main.storyboard里编辑,缺省的视图控制器为“View Controller"
视图控制代码在ViewController.swift类中进行编辑。可通过修改“View Controller"的Custom Class来指定视图控制器的swift类。
2.修改横坚屏:
选中项目:General->Deployment info->Device Orientation勾选屏幕模式即可
3.size classes功能关闭
在File Inspector中Interface Builder Document中去掉Use Size Classes选项的勾选
4、国际化支持 I18N
在项目的PRPJECT ->info ->Localizations中选+添加需要支持的语言。系统会自动为所有的storyboard添加多语言支持文件。如添加简体中文,会自动产生名为zh-Hans.lproj的文件夹,该文件夹下会存放相应的strings文件。
如果要对代码添加多语言支持功能,可通过命令行的方式来创建支持文件
首先进入到项目源文件所在目录:
genstrings *.swift -o zh-Hans.lproj
这条命令为所有swift文件生成一个名为(待续)
5、去掉状态栏 (StatusBar)
首先在storyboard中选中要编辑的view controller,在attribute中将status bar设置为None
然后在项目TARGETS的General的Deployment中将 Hide status bar勾选
然后在代码中添加
overridefunc prefersStatusBarHidden() ->Bool {
return true
}
override func preferredStatusBarStyle() ->UIStatusBarStyle {
returnUIStatusBarStyle.LightContent
}
即可完美的去掉单个页面的status bar.
在info.plist中将status bar is initially hidden设置为YES
6、一些报错的处理方法:
通过http下载图片时报错,处理方法如下:
“App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.plistfile.”
ATS禁止了HTTP的明文传输,因为它不安全。可以修改Info.plist文件,让它临时允许明文传输。
解决办法:
在Info.plist文件中添加"App Transport SecuritySettings", Type为"Dictionary",再添加"Allow Arbitray Loads", Type 为"Boolean",“Value”为“YES”即可。
7、store_search的教程中关闭单个view的auto-layout的写法:
view.removeConstraints(view.constraints)
// view.setTranslatesAutoresizingMaskIntoConstraints(true) 原教材的写法
view.translatesAutoresizingMaskIntoConstraints =true
button无法显示图片的处理:
// let button = UIButton.init(type: .System) as UIButton 原教材指定为.system类型将无法显示图片
let button = UIButton.init()asUIButton //即可显示图片
downloadImageForSearchResult(searchResult, andPlaceOnButton: button)
8、添加背景图
向view中添加image view,选中后Editor->arrange->send to back
然后在viewWillAppear中设置图片的位置和宽度为屏幕的大小(注意先关闭auto layout)
override func viewWillAppear(animated:Bool) {
super.viewWillAppear(animated)
bgImageView.center =self.view.center
bgImageView.bounds =self.view.bounds
}
9、页面跳转
新建一个viewcontroller名为MenuViewController,从当前view controller创建一个到山MenuViewController的segue,指定类型为model,设置identifier为“toMenuVC"
页面跳转的示例如下:
func jump(){
print("jump() is loaded")
self.dismissViewControllerAnimated(true, completion: nil)
self.performSegueWithIdentifier("toMenuVC", sender:nil)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "toMenuVC" {
let menuViewController = segue.destinationViewController as! MenuViewController
menuViewController.getVar = "auto jump"
}