gpt4 book ai didi

ios - 在 iOS 7 上自定义 Storyboard 中的特定 UIBarButtonItem

转载 作者:行者123 更新时间:2023-11-29 03:33:21 25 4
gpt4 key购买 nike

对于我的 iOS 7 应用程序,我有一个 UIToolbar,其中包含一组 UIBarButtonItems,对于特定项目,我希望具有自定义外观。

我只想将项目放在 Storyboard 上,并指定其类,而不通过代码对 UIToolbar 进行操作。一种选择是使用外观,但不幸的是它会导致更改所有 UIBarBUttonItem。

一些旧的SO帖子建议子类化UIBarButtonItem并使用drawRect,这将是理想的解决方案,但不幸的是这样的方法似乎根本没有被调用。

最佳答案

我知道您的问题现在很可能已得到解决,但是使用 Xcode 6,您现在可以完全按照自己的意愿进行操作!

Xcode 6 允许使用宏 IB_DESIGNABLEIBInspectable 来自定义您可以在 Interface Builder 的检查器中更改的内容!

只需在属性(在 .h 中)的类型声明之前定义 IBInspectable 即可将该属性公开给 IB,然后对其进行设置。

如果您在 @interface 之前定义 IB_DESIGNABLE,您还可以实时看到对该自定义属性的更改IB!

下面的示例应该提供您想要做的事情,在 Xcode 6 中的 IB 中:

MyBarButtonItem.h

#import <UIKit/UIKit.h>

IB_DESIGNABLE @interface MyBarButtonItem : UIBarButtonItem

@property (nonatomic, retain) IBInspectable UIImage *backgroundImage;

@end

MyBarButtonItem.m

#import "MyBarButtonItem.h"

@implementation MyBarButtonItem

-(void)setBackgroundImage:(UIImage *)backgroundImage {
[self setBackgroundImage:backgroundImage
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
}

-(UIImage *)backgroundImage {
return [self backgroundImageForState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
}

@end

对上述代码的轻微免责声明:由于显而易见的原因,这为硬编码的条形指标和控件状态定义背景图像。

请参阅 Apple 提供的以下文档以获取更直观的示例:

https://developer.apple.com/library/ios/recipes/xcode_help-IB_objects_media/chapters/CreatingaLiveViewofaCustomObject.html#//apple_ref/doc/uid/TP40014224-CH41-SW1

关于ios - 在 iOS 7 上自定义 Storyboard 中的特定 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499686/

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