相关疑难解决方法(0)

将UIButton上的文本和图像与imageEdgeInsets和titleEdgeInsets对齐

我想在两行文本左侧放置一个图标,使得图像和文本开头之间有大约2-3个像素的空间.控件本身是水平居中对齐的(通过Interface Builder设置)

该按钮类似于以下内容:

|                  |
|[Image] Add To    |
|        Favorites |
Run Code Online (Sandbox Code Playgroud)

我试图用contentEdgeInset,imageEdgeInsets和titleEdgeInsets配置它无济于事.我知道负值会扩大边缘,而正值会缩小它以使其更接近中心.

我试过了:

[button setTitleEdgeInsets:UIEdgeInsetsMake(0, -image.size.width, 0, 0)];
[button setImageEdgeInsets:UIEdgeInsetsMake(0, button.titleLabel.bounds.size.width, 0, 0)];
Run Code Online (Sandbox Code Playgroud)

但这不能正确显示.我一直在调整这些值,但是从左边的插入值开始说-5到-10似乎没有按照预期的方式移动它.-10会将文本一直向左移动,所以我预计-5会将它从左侧拉出一半,但事实并非如此.

插图背后的逻辑是什么?我不熟悉图像放置和相关术语.

我用这个SO问题作为参考,但关于我的价值观的事情是不对的. UIButton:如何使用imageEdgeInsets和titleEdgeInsets使图像和文本居中?

iphone uibutton uikit ios

239
推荐指数
11
解决办法
20万
查看次数

UIButton:如何使用imageEdgeInsets和titleEdgeInsets使图像和文本居中?

如果我只在一个按钮中放置一个图像并将imageEdgeInsets设置得更接近顶部,则图像保持居中并且所有图像都按预期工作:

[button setImage:image forState:UIControlStateNormal];
[button setImageEdgeInsets:UIEdgeInsetsMake(-15.0, 0.0, 0.0, 0.0)];
Run Code Online (Sandbox Code Playgroud)

如果我只在一个按钮中放置一个文本并将titleEdgeInsets设置得更接近底部,则文本保持居中并且所有文件都按预期工作:

[button setTitle:title forState:UIControlStateNormal];
[button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, -30, 0.0)];
Run Code Online (Sandbox Code Playgroud)

但是,如果我将4条线放在一起,文本会干扰图像,并且两者都会失去中心对齐.

我的所有图像都有30像素的宽度,如果我在setTitleEdgeInsets的UIEdgeInsetMake的左参数中放入30,则文本再次居中.问题是图像永远不会居中,因为它似乎依赖于button.titleLabel大小.我已经尝试了许多计算按钮大小,图像大小,titleLabel大小,永远不会完全居中.

有人已经有同样的问题吗?

objective-c uibutton ios

158
推荐指数
11
解决办法
13万
查看次数

UIButton有图像和文字吗?

我有一个尺寸宽度为200,高度为270的按钮.我希望在同一个按钮上有文字和图像.不作为该文本的背景图像.而不是这个,我想在同一个按钮上显示高度为120的文本和高度为150的图像.怎么做?

iphone xcode uibutton ios

65
推荐指数
6
解决办法
8万
查看次数

故事板定位文本在按钮内的图像下方

我可以设置按钮的图像和文本.但它是水平对齐的.我希望图像和文本在按钮内垂直对齐.即图像下方的文字

如何使用故事板进行这些更改?

我想要的是这个:

在此输入图像描述

我现在得到的是: 在此输入图像描述

xcode uibutton ios

44
推荐指数
5
解决办法
3万
查看次数

标签 统计

ios ×4

uibutton ×4

iphone ×2

xcode ×2

objective-c ×1

uikit ×1