gpt4 book ai didi

iphone - iOS:XIB 中使用的图像名称

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

有什么方法可以找出 XIB 中使用的图像代号,例如按钮的背景?

假设我有一个带有按钮的 xib,它的属性背景(对于状态配置:默认)设置为“button.png”,按钮有一个 IBOutlet,例如 myButton。当我的 View 是从 xib 创建的时,我可以通过以下方式轻松访问图像:[myButton backgroundImageForState:UIControlStateNormal] 但它当然是 UIImage,但我需要找到 xib 中使用的图像名称(“button.png”)。

我尝试子类化 UIButton 并在 initWithCoder:(NSCoder *)aDecoder 中找到 NSCoder 的东西,但没有结果

定义按钮背景的 xib 部分是

<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">button.png</string>
</object>

正在尝试类似的东西:

NSObject * obj = [aDecoder decodeObjectForKey:@"IBUINormalBackgroundImage"];

但不起作用(从 nib 初始化时如何使用 NSCoder?)

也试图覆盖

-(void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state{
[super setBackgroundImage:image forState:state];
}

但从未被调用,但在 awakeFromNib 中,所有内容都已初始化并加载。

有人可以解释/帮助解决这个问题吗?

最佳答案

是的,一旦是 UIImage,就不会保留原始文件名的引用。

但如果您需要从 UIButton 获取它,则可以使用其 imageView 的可访问性标识符 来规避此问题。此方法应该可用于任何子类化 UIView 的类。

NSString *filename = [button.imageView accessibilityIdentifier] ;

关于iphone - iOS:XIB 中使用的图像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14447189/

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