XCode 使用筆記

本人iOS菜鳥一名寇蚊,在使用iOS開發(fā)工具XCode過程遇到的問題在此進(jìn)行記錄。

安裝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報(bào)錯(cuò)提完。

sudo gem install activesupport -v 4.2.6

再安裝cocoapods就OK了.

  • 使用Cocoapods
    在項(xiàng)目文件夾下新建個(gè)文件:Podfile
Paste_Image.png

在文件中寫

pod 'AVOSCloud'

然后關(guān)閉XCode.

打開終端。cd到這個(gè)目錄企软。
輸入

pod install

等待安裝矮瘟。

Paste_Image.png

ok 啦瞳脓,以后打開項(xiàng)目就打開 .xcworkspace文件即可

1. 預(yù)覽StoryBoard

Paste_Image.png

Shift Optional 單擊 會(huì)彈出如下的預(yù)覽位置選擇框

Paste_Image.png

選擇一個(gè)位置即可進(jìn)行預(yù)覽StoryBoard

Paste_Image.png

號(hào)可以添加不同的設(shè)備。選中一個(gè)設(shè)備澈侠,按Delete鍵刪除設(shè)備

2. 快捷鍵

  1. Ctrl 0 關(guān)閉顯示導(dǎo)航窗口
  2. Ctrl 拖拽StoryBoard View 相當(dāng)于鼠標(biāo)右鍵拖拽View

    常用來關(guān)聯(lián)View到代碼中或者設(shè)置View的Constraints(約束)

  3. Command =讓StoryBoard上的View大小自適應(yīng)文字
  4. Shift 右擊Shift Ctrl + 單擊 在StoryBoard上可以選擇要選中的View對(duì)象劫侧。
    就像下面這樣:
    Paste_Image.png

3. 屏幕約束

橫向是寬度,縱向是高度哨啃。

常規(guī) 緊湊
常規(guī) iPad iPhone豎屏
緊湊 iPhone6sPlus橫屏 iPhone 4/5/6 橫屏

常規(guī):長度夠了 緊湊:長度不太夠用
為什么6sPlus 橫屏例外呢烧栋,因?yàn)?s屏幕很大,橫起來的時(shí)候原來的高度就用做橫向長度拳球,這相當(dāng)于iPad的寬或高(可粗略認(rèn)為iPad寬高相同)审姓,所以屬于常規(guī)

4. 雜項(xiàng)

  • Align 對(duì)齊
  • Pin 固定


    Pin.png

constraint to margins 勾選上是設(shè)置到margin的距離,如果是要充滿屏幕祝峻,一般去掉這個(gè)勾魔吐,四個(gè)方向填0,然后Add Constraints
aspect ration 是否自適應(yīng)縮放

  • 刪除Swift文件呼猪,要Move to trash画畅,而不是移除引用.
Delete_Swift.png
  • 本土化應(yīng)用

例如UITableView Cell中滑動(dòng)刪除按鈕默認(rèn)是英文的

Info.png
  • UIColor RGB顏色設(shè)置值時(shí)要記得除以255
shareRowAction.backgroundColor = UIColor(red: 0/255, green: 171/255, blue: 97/255, alpha: 1)
  • 轉(zhuǎn)場

    • Push deprecated 壓棧 帶返回按鈕
    • Modal deprecated 模態(tài) 必須完成這個(gè)才能結(jié)束
  • 嵌入導(dǎo)航控制器

    1. 菜單欄簡單點(diǎn)擊法: Editor -> Embed in -> Navigation Controller
      Paste_Image.png

    嵌入導(dǎo)航控制器后的效果:

Paste_Image.png
  • Segue

    • Show 目的視圖會(huì)被壓入導(dǎo)航棧頂部砸琅。導(dǎo)航條會(huì)提供一個(gè)后退按鈕宋距,用以返回源視圖。這是最常用的方式
    • Show detail:與show類似症脂,但會(huì)替換源視圖谚赎。將沒有導(dǎo)航條和后退按鈕
    • Present Modally: 模態(tài)顯示內(nèi)容。目的視圖會(huì)從底部向上彈出诱篷。通常用于顯示跟頁面連貫性不強(qiáng)的視圖壶唤。比如登錄(無論在哪個(gè)頁面,都可能調(diào)出此功能)
    • Present as popover:iPad中常用棕所,模態(tài)顯示一個(gè)帶箭頭指向圓角矩形的彈窗闸盔,類似一個(gè)彈出菜單。就像漫畫書中兩個(gè)人對(duì)話中的對(duì)話框
  • 轉(zhuǎn)場 Segue 傳遞數(shù)據(jù)

在可視化的過渡發(fā)生前琳省,源控制器會(huì)得到通知迎吵,觸發(fā) prepareForSegue()方法
可在prepareForSegue方法中傳遞相關(guān)數(shù)據(jù)給目的地控制器
首先需要給轉(zhuǎn)場 Segue 加一個(gè)標(biāo)識(shí)符(Identifier)
方法:選中轉(zhuǎn)場,屬性欄 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 (拉伸 - 默認(rèn))

    圖片適應(yīng)容器尺寸针贬,圖片可以背完整顯示击费,但是可能會(huì)被拉伸而改變比例

    • Aspect Fit (居中)

圖片保持比例不變,可以完整顯示并居于容器中間

  • Aspect Fill (平鋪)

圖片原始尺寸不變桦他,如果超出容器尺寸蔫巩,會(huì)被截?cái)嘁徊糠帧?br> 注意平鋪模式,多余的部分會(huì)覆蓋周圍視圖一部分,所以要先擇裁邊屬性圆仔。Clip SubViews

Paste_Image.png
  • iOS適配動(dòng)態(tài)字體

iOS在系統(tǒng)設(shè)置-輔助功能可以設(shè)置字體大小垃瞧。但是App需要對(duì)此進(jìn)行適配

適配方法就是在控件的字體上選擇一種文字樣式。

Paste_Image.png

比如選擇“Headline”

  • 無法在View上拖入新View

例如想在UIImageView上拖入U(xiǎn)IButton坪郭,但是拖不上去皆警。
這個(gè)時(shí)候需要拖一個(gè)View(就是View,不是UIButton等其他控件)到原來控件位置截粗,其他控件都拖到這個(gè)新View上面即可信姓。

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

從Button拖到另一個(gè)ViewController 選擇Modally就是模態(tài)顯示新窗口(無返回鍵)

先在上一個(gè)Cotroller編寫個(gè)方法(參數(shù)必須為UIStoryboardSegue),然后按照下面方式拖點(diǎn)擊事件即可關(guān)閉窗口绸罗。

 @IBAction func closeSegue(segue:UIStoryboardSegue){
        //返回時(shí)的操作意推,可以為空
    }
Paste_Image.png
  • 啟用組件

例如啟用地圖組件(MapKit)

Paste_Image.png

嗯 ,就是這么簡單珊蟀,打開地圖開關(guān)就能讓App擁有地圖相關(guān)功能

  • CoreData

    • 生成CoreData實(shí)體類
Paste_Image.png
  • PageView 翻頁視圖
    transition style 翻頁樣式菊值。
    Scroll 滑動(dòng)
    Page Curl 翻書樣式
Paste_Image.png
  • TabBar
    TabBar 轉(zhuǎn)場后不顯示TabBar
    勾上 Hide Bottom Bar on Push


    Paste_Image.png

如果要在代碼中設(shè)置,就在轉(zhuǎn)場前設(shè)置目的視圖的BottomBar為hide

  • 重構(gòu)StoryBoard(引用Storyboard)
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末育灸,一起剝皮案震驚了整個(gè)濱河市腻窒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌磅崭,老刑警劉巖儿子,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砸喻,居然都是意外死亡柔逼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門割岛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愉适,“玉大人,你說我怎么就攤上這事癣漆∥蹋” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵惠爽,是天一觀的道長癌蓖。 經(jīng)常有香客問我,道長疆股,這世上最難降的妖魔是什么费坊? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮旬痹,結(jié)果婚禮上附井,老公的妹妹穿的比我還像新娘讨越。我一直安慰自己,他們只是感情好永毅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布把跨。 她就那樣靜靜地躺著,像睡著了一般沼死。 火紅的嫁衣襯著肌膚如雪着逐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天意蛀,我揣著相機(jī)與錄音耸别,去河邊找鬼。 笑死县钥,一個(gè)胖子當(dāng)著我的面吹牛秀姐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播若贮,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼省有,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了谴麦?” 一聲冷哼從身側(cè)響起蠢沿,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匾效,沒想到半個(gè)月后舷蟀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弧轧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年雪侥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碗殷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片精绎。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锌妻,靈堂內(nèi)的尸體忽然破棺而出代乃,到底是詐尸還是另有隱情,我是刑警寧澤仿粹,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布搁吓,位于F島的核電站,受9級(jí)特大地震影響吭历,放射性物質(zhì)發(fā)生泄漏堕仔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一晌区、第九天 我趴在偏房一處隱蔽的房頂上張望摩骨。 院中可真熱鬧通贞,春花似錦、人聲如沸恼五。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灾馒。三九已至茎用,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間睬罗,已是汗流浹背轨功。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留容达,地道東北人夯辖。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像董饰,于是被迫代替她去往敵國和親蒿褂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫卒暂、插件啄栓、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,093評(píng)論 4 62
  • 前言的前言 唐巧前輩在微信公眾號(hào)「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各項(xiàng)指標(biāo)...
    VincentHK閱讀 5,360評(píng)論 3 44
  • 在本系列Storyboard教程的第一部分也祠,我們已經(jīng)學(xué)習(xí)了如何使用Interface Builder創(chuàng)建并連接不同...
    余一波_Bobby閱讀 12,812評(píng)論 2 11
  • 想念你 不是說說而已 想念你 不是想想而已 想念你 想你的名字 想念你 想念和你所有的事情 想念你 不承認(rèn)不可以 ...
    妾聽封吟閱讀 292評(píng)論 1 5
  • 上不完的課終于上完了昙楚, 再也不用回到那個(gè)臭烘烘的宿舍, 再也不用吃食堂诈嘿, 再也不用怕掛科也不用怕早起堪旧, 再也不用通...
    moon木s閱讀 191評(píng)論 0 0