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
XCode 使用笔记_第1张图片
Paste_Image.png

在文件中写

pod 'AVOSCloud'

然后关闭XCode.

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

pod install

等待安装。

XCode 使用笔记_第2张图片
Paste_Image.png

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

1. 预览StoryBoard

XCode 使用笔记_第3张图片
Paste_Image.png

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

XCode 使用笔记_第4张图片
Paste_Image.png

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

XCode 使用笔记_第5张图片
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对象。
    就像下面这样:
    XCode 使用笔记_第6张图片
    Paste_Image.png

3. 屏幕约束

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

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

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

4. 杂项

  • Align 对齐
  • Pin 固定


    XCode 使用笔记_第7张图片
    Pin.png

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

  • 删除Swift文件,要Move to trash,而不是移除引用.
XCode 使用笔记_第8张图片
Delete_Swift.png
  • 本土化应用

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

XCode 使用笔记_第9张图片
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
      XCode 使用笔记_第10张图片
      Paste_Image.png

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

XCode 使用笔记_第11张图片
Paste_Image.png
  • Segue

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

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

XCode 使用笔记_第12张图片
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)!]
        }
    }
XCode 使用笔记_第13张图片
Paste_Image.png
  • UIImageView 的 Mode
    • Scale to Fill (拉伸 - 默认)

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

    • Aspect Fit (居中)

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

  • Aspect Fill (平铺)

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

XCode 使用笔记_第14张图片
Paste_Image.png
  • iOS适配动态字体

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

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

XCode 使用笔记_第15张图片
Paste_Image.png

比如选择“Headline”

  • 无法在View上拖入新View

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

XCode 使用笔记_第16张图片
Paste_Image.png
  • 在Modal窗口返回上一个界面 ( UnWind Segue )
XCode 使用笔记_第17张图片
Paste_Image.png

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

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

 @IBAction func closeSegue(segue:UIStoryboardSegue){
        //返回时的操作,可以为空
    }
XCode 使用笔记_第18张图片
Paste_Image.png
  • 启用组件

例如启用地图组件(MapKit)

XCode 使用笔记_第19张图片
Paste_Image.png

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

  • CoreData

    • 生成CoreData实体类
XCode 使用笔记_第20张图片
Paste_Image.png
  • PageView 翻页视图
    transition style 翻页样式。
    Scroll 滑动
    Page Curl 翻书样式
XCode 使用笔记_第21张图片
Paste_Image.png
  • TabBar
    TabBar 转场后不显示TabBar
    勾上 Hide Bottom Bar on Push


    XCode 使用笔记_第22张图片
    Paste_Image.png

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

  • 重构StoryBoard(引用Storyboard)
XCode 使用笔记_第23张图片
Paste_Image.png

你可能感兴趣的:(XCode 使用笔记)