iOS 设备通用设备适配

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: 会根据前一个控制器的设置来决定跳转方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值