iOS - 如何在不调整大小和重新定位按钮视图的情况下更改按钮图像

Posted

技术标签:

【中文标题】iOS - 如何在不调整大小和重新定位按钮视图的情况下更改按钮图像【英文标题】:iOS - how to change button image without resizing and repositioning the button view 【发布时间】:2014-01-19 16:55:33 【问题描述】:

我目前有一个包含 2 个按钮的视图 - 视图大小为 320 像素宽和 52 像素高。 每个按钮宽 160 像素,高 52 像素,它们彼此相邻,覆盖整个视图。每个按钮都有与之关联的 160X52 图像。正在发生以下行为:

在渲染视图时,我可以看到两个按钮的填充渲染 - 我将背景视图设置为白色,并且可以看到每个按钮周围都有一条白线。我怎样才能删除它?

第二个也是最重要的 - 单击一个按钮时,我将图像替换为另一个 160 像素宽但 62 像素高的图像。渲染视图时,我看到图像调整大小而不是溢出视图之外。但是,在检查按钮的边界和中心属性时,它们并没有改变。

我不是视图设计师专家,我肯定需要更多地阅读渲染引擎的工作原理,但如果有人能给出一些提示让我开始看什么,那将非常有帮助.

坦克很多

【问题讨论】:

发布您如何将图像设置为按钮的代码 【参考方案1】:

这是按钮的代码;

    UIButton *firstButton = [[UIButton alloc] initWithFrame:CGRectMake(50.0, 50.0, 160.0, 52.0)];
[firstButton setBackgroundImage:[UIImage imageNamed:@"backGroundview"] forState:UIControlStateNormal];
[self.view addSubview:firstButton];

这是按钮按下时的 2 张图片。你确定你没有任何自动布局规则或按钮的不同图像吗?而不是使用“setBackgroundImage”,而是使用 setImage 它将按钮调整为图像大小。

【讨论】:

以上是关于iOS - 如何在不调整大小和重新定位按钮视图的情况下更改按钮图像的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局调整同级视图的大小时,使用子视图重新定位 UIView 不起作用

如何通过脚本在 Unity 中重新定位和调整游戏对象的大小?

如何在不指定估计行高的情况下使用 iOS 自动调整单元格大小?

使用自动布局进行编辑时在表格视图中调整子视图的大小

如何在不模糊或使用毕加索的情况下调整图像大小

iOS - 需要为不同的 iPhone 调整按钮和图像的大小