UIButton的剪辑图片

时间:2011-07-19 01:33:36

标签: ios cocoa-touch uibutton

我有一个使用图像显示的UIButton。

问题是我的图像是109x78,但我希望按钮的大小为109x20,固定在左上方并剪切大于20像素高的所有内容。

这就是我现在所拥有的:

UIButton *startTrainingBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[startTrainingBtn setContentMode:UIViewContentModeTopLeft];
[startTrainingBtn setClipsToBounds:YES];
[startTrainingBtn setImage:[UIImage imageNamed:@"startTrainingClosed"] forState:UIControlStateNormal];
[startTrainingBtn setFrame:CGRectMake(900, 653, 109, 20)];
[self.view addSubview:startTrainingBtn];

我原本以为使用TopMft和ClipsToBounds的ContentMode会有效,但它只是缩小图像以适应。

1 个答案:

答案 0 :(得分:0)

这是在一年前问的,我想你已经做了我要告诉你的事情,但仍然让我留下这个记录: 然后使用适当大小的图像。你的图像超过了所需高度的两倍。

我知道这种行为看起来很奇怪,但这就是处理按钮图像的方式。 但是,您可以使用图像将背景颜色设置为图案,它将具有您所追求的效果。

UIButton *startTrainingBtn = [UIButton buttonWithType:UIButtonTypeCustom];
startTrainingBtn.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"startTrainingClosed"]];
[startTrainingBtn setFrame:CGRectMake(900, 653, 109, 20)];
[self.view addSubview:startTrainingBtn];

此解决方案的问题在于,您无法为其他状态设置不同的图像,也不能对按钮产生选定的效果。