gpt4 book ai didi

ios - 使用 initWithFrame 时缩小 UIButton 的背景图像 :

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:06 24 4
gpt4 key购买 nike

这是我第一次设计 iOS 应用,所以我想确保我正确理解了这种行为。

我在 Photoshop 中为导航栏设计了一个自定义栏按钮图标。我在 Photoshop 中保存的最终图像是 102 x 45,是的,我意识到这些尺寸大于 iOS 7 设计指南中推荐的 44x44。

无论如何,我将图像放入 Assets 文件夹,然后使用以下代码以编程方式设置条形按钮项目:

UIImage* firstButtonImage = [UIImage imageNamed:@"loginbutton1"];

CGRect frame = CGRectMake(0, 0, 102, 45);

UIButton * someButton = [[UIButton alloc] initWithFrame:frame];
[someButton setBackgroundImage:firstButtonImage forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(didTapLoginButton:)
forControlEvents:UIControlEventTouchUpInside];

self.rightBarButton = [[UIBarButtonItem alloc] initWithCustomView:someButton];

self.navItem.rightBarButtonItem = self.rightBarButton;

如您所见,我将框架的宽度和高度设置为图像的确切大小。当我第一次运行该应用程序时,我不喜欢这个图像,认为它太大了。所以我在这条语句中更改了 width 和 height 参数:

CGRect frame = CGRectMake(0, 0, 70, 30);

现在图像在 iPhone 屏幕上看起来很完美。这是在 iPhone 4s 上。

所以我的主要问题是,当我更改帧大小时实际发生了什么?由于框架现在小于实际图像尺寸,图像是否会自动缩小以适合框架?

最佳答案

是的,图像会缩放,因为您使用的是 backgroundImage(不是 Image)。两个图像都有不同的行为。

检查Xcode Interface Builder,您可以在那里看到,您可以设置两个图像:Image 和Background。背景是为 UIButton 的整个框架缩放的 UIImage

enter image description here

UIButton Class Reference允许您访问 imageimageView(不是 backgroundImageimageView)

因为您可以访问 imageView,所以您可以通过以下方式更改图像的模式:

[[someButton imageView] setContentMode:UIViewContentModeBottomLeft];

UIView Class Reference你可以检查Apple提供的所有UIViewContentModes

您可以检查一下您的代码是否有所改变:

[someButton setImage:firstButtonImage forState:UIControlStateNormal];
[[someButton imageView] setContentMode:UIViewContentModeBottomRight];

关于ios - 使用 initWithFrame 时缩小 UIButton 的背景图像 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com