首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使UIButton图像适合按钮

使UIButton图像适合按钮
EN

Stack Overflow用户
提问于 2021-11-26 12:36:34
回答 2查看 823关注 0票数 5

首先,我使用的是iOS。

每当我试图设置UIButton的图像时,图像就会变得和整个屏幕一样大。我希望这个图像符合UIButton的边界/帧。

我尝试过使用PDF图像和PNG图像(屏幕截图中的图像是png)。它们都忽略了嵌入在其中的实际UIButton的框架和大小。

以下是UIButton在xcode故事板中的外观。它与superview的垂直和水平中间对齐,宽度是superview的0.25倍,高宽比为1:1。我也尝试给它一个固定的高度和宽度,但这没有帮助。

我调试了帧大小,但发现它保持不变,不受UIButtons图像的影响。

总结一下我迄今尝试过的、但没有奏效的一切:

代码语言:javascript
复制
public partial class ViewController : UIViewController
{
    public ViewController(IntPtr handle) : base(handle)
    {
    }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        
        // SetImage -> makes image as big as the screen
        Btn.SetImage(UIImage.FromBundle("skip"), UIControlState.Normal);
        // SetBackgroundImage -> Image doesn't appear at all, maybe I'm forgetting something?
        Btn.SetBackgroundImage(UIImage.FromBundle("skip"), UIControlState.Normal);
        // none of these things do literally anything
        Btn.ContentMode = UIViewContentMode.ScaleAspectFill;
        Btn.ContentMode = UIViewContentMode.ScaleAspectFit;
        Btn.ImageView.ContentMode = UIViewContentMode.ScaleAspectFill;
        Btn.ImageView.ContentMode = UIViewContentMode.ScaleAspectFit;
        // also have no impact on the image at all
        Btn.ImageEdgeInsets = new UIEdgeInsets(100, 100, 100, 100);
        Btn.ContentEdgeInsets = new UIEdgeInsets(100, 100, 100, 100);
        // also does nothing
        UIImage image = UIImage.FromBundle("skip");
        image.CreateResizableImage(new UIEdgeInsets(10, 10, 10, 10));
        Btn.SetImage(image, UIControlState.Normal);
        // no luck again
        image.Scale(new CGSize(Btn.Frame.Width, Btn.Frame.Height), 0.1f);
        Btn.SetImage(image, UIControlState.Normal);
    }
}

这个问题存在于我在模拟器上测试过的所有设备上(IPhone 11,IPhone 12,IPhone 12 mini,IPod touch)。我还不能在真正的设备上测试它。

似乎互联网上没有其他人有这个问题。我遗漏了什么?这可能是一件小事,但我想不出来。

最小可重现性项目

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-29 21:56:20

我假设您正在使用Xcode 13童话板设计器。

如果是,请将Button样式从“平原”更改为:

改为“默认”:

现在,您的图像将适合受约束的按钮大小。

票数 5
EN

Stack Overflow用户

发布于 2022-08-28 11:59:49

如果您使用的是XCode

如果您正在使用ImageButton,请首先在故事板中找到View部分

在找到视图部分之后

查找剪辑到边界复选标记

然后按下面的方式检查True

现在,您的图像将符合按钮大小。

您也可以通过代码来完成这一任务。

假设您的按钮名为buttonOne

然后,

代码语言:javascript
复制
buttonOne.clipsToBounds = true

这也使您的图像符合您的imageButton大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70124551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档