iOS 设备通用设备适配

来源:互联网 发布:随机信号分析 知乎 编辑:程序博客网 时间:2024/05/18 03:40

1. iPad 应用

  1. device 选择为 iPhone 时,生成的应用可以在 iPad 上运行,但是会出现黑边
  2. device 选择为 iPad 时,生成的应用不能再 iPhone 上运行

2. UIStackView

  • 概念

    一个堆叠视图的容器,iOS9新特性

  • 用途

    stackView 及其子视图可以进行界面自适应,可以减少设置约束的工作量(基本可以不用设置约束)

  • 特点

    1. 类似 containerView–stackView 不会再界面上渲染.

    2. stackView 里面添加的子视图只能朝着一个方向排布, 要么全部水平,要么全部垂直

    3. 可以嵌套

    4. stackView 的自适应的优先级低于手动设置的约束,可以通过设置约束来调整布局

  • 属性

    1. Axis 轴 设置排布方向
    2. Aligment 对齐方式
      • Fill 模式表示在垂直方向上填充满
      • First BaseLine 与第一行文字对齐, label 才会有
    3. Distribution 用来设置 分布方式(填充方式) – 排布方向的填充
    4. Spacing 子视图之间的间距
    5. BaseLine 基线(与文本相关才会有)
    6. 支持动画
    7. 不支持滚动
  • iPad 分屏原则:

    按照 iPhone 竖屏的样式去显示

  • 抗压优先级:

    默认为750, 可以通过设置该值调整挤压顺序

  • 注意事项:

    1. removedArrangedSubView 方法不会将子视图从视图层级上移除, 设置后stackView将不再管理该子视图, 此时子视图就会按照原始方式显示在父视图上, 必须使用 removeFromSuperView

Popover

  • 概念

    弹出框: 是应用开发中,尤其是 iPad 开发中非常重要的一个技术,

  • 版本变化

    iOS7之前, popover 功能仅限于在 iPad 上使用
    iOS8开始,苹果推出 UIPopoverpresentationController 替代 UIPopoverController

  • 设置 popover 的大小

    当控制器为 popover 的目标控制器时,可以通过 preferredContentSize 来设置 popover 的大小

  • 产生 popover 的空间如果不是 UIBarButtonItem, 则产生popover 的空间会被自动设置为来源视图, 默认参考点会设置为来源视图的左上角

  • sourceRect 将 popover 的参考点设置为来源视图的 bounds 时就可以使得, 参考点处于来源视图的中心. 因为此处是将整个来源视图作为一个参考点

  • iPhone 实现 popover

    • 思路:

      取消系统的自适应的设置

      extension ViewController:UIPopoverPresentationControllerDelegate{func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {return .None}}
  • 设置或略外部点击事件

    设置 popover 的控制器 vc的modalInPopover为 YES, 这样就会忽略外部的所有点击

  • 设置passthroughViews可穿透数组

  • Unwind Segue 解除跳转– 返回上一个控制器

    1. 使用时需要设置segue 的响应事件(参数必须为 segue类型),方法中不需要写任何事情
    2. 必须设置@ IBAction 关键字–便于连线

    3. 此时就可以在 IB面板 上与Exit连线了

    4. 可以跨控制器进行跳转,
  • currentContext: 会根据前一个控制器的设置来决定跳转方式
0 0