You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建或调整NSLayoutAnchor属性?实现锚点偏移

如何返回偏移后的布局锚点

不需要用隐形视图这种临时方案,NSLayoutAnchor本身就提供了直接生成偏移锚点的方法,iOS 10及以上系统都支持:

1. 生成当前视图顶部下方42像素的锚点

/// 供上层视图知晓仪表盘区域位置
var dialsSafeArea: NSLayoutYAxisAnchor {
    // iOS 11+ 优先用这个简洁的方法
    return topAnchor.offset(by: 42)
    
    // 如果要兼容iOS 10,用下面这个:
    // return topAnchor.anchorWithOffset(to: topAnchor, constant: 42)
}

2. 基于已有视图锚点生成偏移锚点

比如要把pinkThing.topAnchor向下偏移3像素:

/// 供上层视图使用的偏移后锚点
var adjustedPinkTop: NSLayoutYAxisAnchor {
    return pinkThing.topAnchor.offset(by: 3)
}

如果需要向上偏移,传入负数即可:

var adjustedPinkTop: NSLayoutYAxisAnchor {
    return pinkThing.topAnchor.offset(by: -3)
}

用法示例

上层视图可以直接用这个自定义锚点创建约束,和原生锚点用法完全一致:

customView.dialsSafeArea.constraint(equalTo: someOtherView.topAnchor).isActive = true

内容的提问来源于stack exchange,提问作者Fattie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:52:13