美文网首页
XCode 使用笔记

XCode 使用笔记

作者: Thresh0ld | 来源:发表于2016-08-31 17:47 被阅读59次

    本人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

    相关文章

      网友评论

          本文标题:XCode 使用笔记

          本文链接:https://www.haomeiwen.com/subject/ejzqettx.html