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

如何将UIButton绑定的UIMenu显示位置调整至按钮右下角

调整UIButton UIMenu显示位置的实现方法

有两种常用实现方案,适配不同系统版本需求:

方案1:自定义UIButton子类(兼容iOS14+,全版本支持)

所有支持UIMenu的iOS系统都可以用这个方案,稳定且无需版本判断:

  • 自定义继承自UIButton的子类,重写menuAttachmentPoint方法,返回按钮右下角坐标作为菜单附着锚点
class RightBottomMenuButton: UIButton {
    override func menuAttachmentPoint(for configuration: UIButton.Configuration) -> CGPoint {
        // 直接返回按钮右下角点,如需额外偏移可对应增减x/y数值
        return CGPoint(x: bounds.maxX, y: bounds.maxY)
    }
}
  • 原有代码中将你的按钮类替换为RightBottomMenuButton即可,其余UIMenu初始化逻辑不需要修改。

方案2:iOS16+ 无子类快捷实现

iOS16新增了菜单位置相关的原生属性,不需要自定义子类也可以调整:

if #available(iOS 16.0, *) {
    // 设置菜单从按钮下方弹出
    button.menuPlacement = .popDown
    // 配置菜单与按钮右边缘对齐
    button.configuration?.titleMenuAlignment = .trailing
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:24:03