我正在从UIImages的NSArray中创建一系列UIButton,其中包含以下内容:
#define BUTTONWIDTH 66
for (int i = 0; i < [imgArray count]; i++){
toolTile = [UIButton buttonWithType:UIButtonTypeRoundedRect];
buttonRect = CGRectMake((BUTTONWIDTH*i)+i, 0, BUTTONWIDTH, BUTTONWIDTH);
toolTile.frame = buttonRect;
toolTile.tag = i;
[toolTile addTarget:self action:@selector(toolTileClick:) forControlEvents:UIControlEventTouchUpInside];
toolTile.imageView.contentMode = UIViewContentModeCenter;
[toolTile setBackgroundImage:[imgArray objectAtIndex:i] forState:UIControlStateNormal];
[[self view] addSubview:toolTile];
}
不幸的是,图像正在缩放(炸毁)以填充66x66图块。我希望它们在瓷砖中以1:1为中心 - 据说toolTile.imageView.contentMode = UIViewContentModeCenter
应该这样做。在setBackgroundImage
之后,我尝试过移动这一行: - 没有运气。我错过了什么?
答案 0 :(得分:2)
罪魁祸首是使用setBackgroundImage:forState:[UIControlState]
代替setImge:forState:[UIControlState]
。
SetBackgroundImage
显然一直在扩展,SetImage:
尊重imageView.contentMode
。