UIButton 显示不正确
UIButton appearing incorrectly
我在尝试弄清楚如何使 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]];
下面是哪个结果:
如果您仍然无法设置图像,我会建议您使用故事板的最佳和简单方法。
步骤:
- 在故事板上添加一个按钮
- 在按钮中添加图片
现在使用这些选项并使用它们。最好的学习方法。
我在尝试弄清楚如何使 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]];
下面是哪个结果:
如果您仍然无法设置图像,我会建议您使用故事板的最佳和简单方法。
步骤:
- 在故事板上添加一个按钮
- 在按钮中添加图片
现在使用这些选项并使用它们。最好的学习方法。