IBDesignable自定义RoundButton在Storyboard不渲染且提示可执行文件找不到
解决步骤
1. 修正RoundButton类代码
原有代码在IB渲染场景下存在布局取值不准确的问题,修改后代码如下:
// // RoundButton.swift // import UIKit @IBDesignable class RoundButton: UIButton { @IBInspectable var roundButton : Bool = false { didSet { updateCornerRadius() } } override func layoutSubviews() { super.layoutSubviews() updateCornerRadius() } override func prepareForInterfaceBuilder() { super.prepareForInterfaceBuilder() updateCornerRadius() } private func updateCornerRadius() { guard roundButton else { return } layer.cornerRadius = bounds.height / 2 clipsToBounds = true } }
修改说明:
- 抽取圆角更新逻辑为独立方法,避免重复代码
- 替换
frame.height为bounds.height,取值适配自身尺寸变化场景 - 新增
clipsToBounds = true确保圆角裁剪生效 - 在
layoutSubviews中增加更新逻辑,按钮尺寸变化时自动适配圆角
2. 修复IB渲染报错
The bundle "Taschenrechner.app" couldn't be loaded属于Xcode IB Designables的常见渲染故障,按以下步骤处理:
- 确认
RoundButton.swift的Target Membership仅勾选主App目标(Taschenrechner),未勾选测试类目标 - 执行清空缓存操作:按
Command + Shift + K清空构建文件夹,再按Command + Option + Shift + K清空全部Xcode缓存 - 重启Xcode,重新打开项目等待索引完成
- 若仍无圆角显示,点击顶部菜单
Editor > Refresh All Views主动触发IB刷新
3. 额外配置检查
- 确认Storyboard内的按钮已设置明确的尺寸约束,避免IB计算尺寸异常
- 确认按钮的Custom Class设置为
RoundButton,Module关联当前项目主模块,未选择其他无关模块
操作完成后Storyboard内即可正常显示圆角按钮,IB报错也会同步消失。
内容的提问来源于stack exchange,提问作者anonymoushuman
相关产品推荐
相关产品推荐

