ios - UIButton 显示不正确
问题描述
我很难弄清楚如何使 UIButton 看起来正确。本质上,它应该是这样的:
UIButton 在情节提要中设置并具有适当的约束。然后,在代码中我试图专门为我的用例定制它。这是我方法中的代码:
- (void)setupSkipBreakButton
{
NSString* buttonText = BMStringInApplicationLanguageForKey(skipIntroTextKey);;
[self.skipBreak setTitle: buttonText forState: UIControlStateNormal];
UIImage *skipBreak = [UIImage bm_imageWithBundlePath:BMVideoPlayerControlRackViewSkipBreakImageName];
[self.skipBreak setTitleEdgeInsets:UIEdgeInsetsMake(3.0, 1.0, 3.0, 0.0)];
[self.skipBreak setImageEdgeInsets:UIEdgeInsetsMake(3.0, 0.0, 3.0, 2.0)];
[self.skipBreak setImage:skipBreak forState:UIControlStateNormal];
self.skipBreak.backgroundColor = [[UIColor bm_colorWithHexString:BMVideoPlayerDefaultColor]
colorWithAlphaComponent:BMVideoPlayerDefaultAlpha];
[self.skipBreak addTarget:self action:@selector(skipBreakButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
}
相反,该按钮实际上在“跳过介绍”的左侧有 2 个右箭头,而根据上图它应该在右侧。
我在我的代码中没有看到任何涉及定位图像而不是文本的内容(除了 UIEdgeInsets?)。所以,我不明白如何解决这个问题。
请帮忙?
解决方案
这是做你想做的事情的代码。基本上你需要检查你传入的值UIEdgeInsetsMake
。
UIImage *skipBreak = [UIImage imageNamed:@"testpic.png"];
[self.button setTitle:@"Tesst" forState:UIControlStateNormal];
[self.button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, 30.0)];
[self.button setImage:skipBreak forState:UIControlStateNormal];
[self.button setImageEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, -57)];
[self.button setBackgroundColor:[UIColor yellowColor]];
结果如下:
如果您仍然无法将图像设置为使用情节提要的最佳且简单的方法,我会建议您。
步:
- 在情节提要上添加一个按钮
- 在按钮中添加图像
推荐阅读
- java - 部署成功后的404
- botframework - 微软示例 52 -
- reactjs - 如何在firebase实时数据库和身份验证上生成相同的用户ID
- quarkus - Quarkus、Apache 目录 api、google libphonenumber 库不适用于本机
- sql - Oracle 中的转置功能
- php - Wordpress 类别页面在 URL 中显示类别和子类别
- netbeans - NetBeans Junit5 测试输出忽略 DisplayName 嵌套格式
- javascript - 如何修复 Express Route 处理程序中丢失的 SocketIO 会话数据?
- node.js - 让 Vue 应用程序正确读取 Heroku 上设置的环境变量的最佳方法是什么?
- linux - 根据条件关闭 nginx 模块