XCode 使用笔记

本人iOS菜鸟一名,在使用iOS开发工具XCode过程遇到的问题在此进行记录。

安装CocoaPods


[**threshold@ThresholddeMacBook-Air**:**~**$] sudo gem install cocoapods
Password:
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: concurrent-ruby-1.0.2.gem (100%)
Successfully installed concurrent-ruby-1.0.2
Fetching: activesupport-5.0.0.1.gem (100%)
ERROR:  Error installing cocoapods:
 activesupport requires Ruby version >= 2.2.2.

安装cocoapods报错。

sudo gem install activesupport -v 4.2.6

再安装cocoapods就OK了.

  • 使用Cocoapods
    在项目文件夹下新建个文件:Podfile
Paste_Image.png

在文件中写

pod 'AVOSCloud'

然后关闭XCode.

打开终端。cd到这个目录。
输入

pod install

等待安装。

Paste_Image.png

ok 啦,以后打开项目就打开 .xcworkspace文件即可

1. 预览StoryBoard

Paste_Image.png

Shift Optional 单击 会弹出如下的预览位置选择框

Paste_Image.png

选择一个位置即可进行预览StoryBoard

Paste_Image.png

号可以添加不同的设备。选中一个设备,按Delete键删除设备

2. 快捷键

  1. Ctrl 0 关闭显示导航窗口
  2. Ctrl 拖拽StoryBoard View 相当于鼠标右键拖拽View

    常用来关联View到代码中或者设置View的Constraints(约束)

  3. Command =让StoryBoard上的View大小自适应文字
  4. Shift 右击Shift Ctrl + 单击 在StoryBoard上可以选择要选中的View对象。
    就像下面这样:
    Paste_Image.png

3. 屏幕约束

横向是宽度,纵向是高度。

常规 紧凑
常规 iPad iPhone竖屏
紧凑 iPhone6sPlus横屏 iPhone 4/5/6 横屏

常规:长度够了 紧凑:长度不太够用
为什么6sPlus 横屏例外呢,因为6s屏幕很大,横起来的时候原来的高度就用做横向长度,这相当于iPad的宽或高(可粗略认为iPad宽高相同),所以属于常规

4. 杂项

  • Align 对齐
  • Pin 固定


    Pin.png

constraint to margins 勾选上是设置到margin的距离,如果是要充满屏幕,一般去掉这个勾,四个方向填0,然后Add Constraints
aspect ration 是否自适应缩放

  • 删除Swift文件,要Move to trash,而不是移除引用.
Delete_Swift.png
  • 本土化应用

例如UITableView Cell中滑动删除按钮默认是英文的

Info.png
  • UIColor RGB颜色设置值时要记得除以255
shareRowAction.backgroundColor = UIColor(red: 0/255, green: 171/255, blue: 97/255, alpha: 1)
  • 转场

    • Push deprecated 压栈 带返回按钮
    • Modal deprecated 模态 必须完成这个才能结束
  • 嵌入导航控制器

    1. 菜单栏简单点击法: Editor -> Embed in -> Navigation Controller
      Paste_Image.png

    嵌入导航控制器后的效果:

Paste_Image.png
  • Segue

    • Show 目的视图会被压入导航栈顶部。导航条会提供一个后退按钮,用以返回源视图。这是最常用的方式
    • Show detail:与show类似,但会替换源视图。将没有导航条和后退按钮
    • Present Modally: 模态显示内容。目的视图会从底部向上弹出。通常用于显示跟页面连贯性不强的视图。比如登录(无论在哪个页面,都可能调出此功能)
    • Present as popover:iPad中常用,模态显示一个带箭头指向圆角矩形的弹窗,类似一个弹出菜单。就像漫画书中两个人对话中的对话框
  • 转场 Segue 传递数据

在可视化的过渡发生前,源控制器会得到通知,触发 prepareForSegue()方法
可在prepareForSegue方法中传递相关数据给目的地控制器
首先需要给转场 Segue 加一个标识符(Identifier)
方法:选中转场,属性栏 identifier

Paste_Image.png

在源控制器中写:

 // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
        if segue.identifier == "showRestaurantDetail"{
            let destVC = segue.destinationViewController as! RestaurantDetailViewController
            destVC.restaurantName = restaurants[(tableView.indexPathForSelectedRow?.row)!]
            destVC.restaurantImage = restaurantPictures[(tableView.indexPathForSelectedRow?.row)!]
        }
    }
Paste_Image.png
  • UIImageView 的 Mode
    • Scale to Fill (拉伸 - 默认)

    图片适应容器尺寸,图片可以背完整显示,但是可能会被拉伸而改变比例

    • Aspect Fit (居中)

图片保持比例不变,可以完整显示并居于容器中间

  • Aspect Fill (平铺)

图片原始尺寸不变,如果超出容器尺寸,会被截断一部分。
注意平铺模式,多余的部分会覆盖周围视图一部分,所以要先择裁边属性。Clip SubViews

Paste_Image.png
  • iOS适配动态字体

iOS在系统设置-辅助功能可以设置字体大小。但是App需要对此进行适配

适配方法就是在控件的字体上选择一种文字样式。

Paste_Image.png

比如选择“Headline”

  • 无法在View上拖入新View

例如想在UIImageView上拖入UIButton,但是拖不上去。
这个时候需要拖一个View(就是View,不是UIButton等其他控件)到原来控件位置,其他控件都拖到这个新View上面即可。

Paste_Image.png
  • 在Modal窗口返回上一个界面 ( UnWind Segue )
Paste_Image.png

从Button拖到另一个ViewController 选择Modally就是模态显示新窗口(无返回键)

先在上一个Cotroller编写个方法(参数必须为UIStoryboardSegue),然后按照下面方式拖点击事件即可关闭窗口。

 @IBAction func closeSegue(segue:UIStoryboardSegue){
        //返回时的操作,可以为空
    }
Paste_Image.png
  • 启用组件

例如启用地图组件(MapKit)

Paste_Image.png

嗯 ,就是这么简单,打开地图开关就能让App拥有地图相关功能

  • CoreData

    • 生成CoreData实体类
Paste_Image.png
  • PageView 翻页视图
    transition style 翻页样式。
    Scroll 滑动
    Page Curl 翻书样式
Paste_Image.png
  • TabBar
    TabBar 转场后不显示TabBar
    勾上 Hide Bottom Bar on Push


    Paste_Image.png

如果要在代码中设置,就在转场前设置目的视图的BottomBar为hide

  • 重构StoryBoard(引用Storyboard)
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,088评论 4 62
  • 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标...
    VincentHK阅读 5,360评论 3 44
  • 在本系列Storyboard教程的第一部分,我们已经学习了如何使用Interface Builder创建并连接不同...
    余一波_Bobby阅读 12,805评论 2 11
  • 想念你 不是说说而已 想念你 不是想想而已 想念你 想你的名字 想念你 想念和你所有的事情 想念你 不承认不可以 ...
    妾听封吟阅读 292评论 1 5
  • 上不完的课终于上完了, 再也不用回到那个臭烘烘的宿舍, 再也不用吃食堂, 再也不用怕挂科也不用怕早起, 再也不用通...
    moon木s阅读 191评论 0 0