在 iOS 7 和 Objective c 中使用 UIColor 类别
Posted
技术标签:
【中文标题】在 iOS 7 和 Objective c 中使用 UIColor 类别【英文标题】:Using a UIColor category in iOS 7 and Objective c 【发布时间】:2013-10-16 06:57:52 【问题描述】:我有一个 UIColor+MyLayout.m 文件,例如:
@implementation UIColor (Layout)
- (UIColor *) textBackground
UIColor *lightGreen = [UIColor colorWithRed:0.0f/255.0f green:178.0f/255.0f blue:238.0f/255.0f alpha:1.0f];
return lightGreen;
@end
我已将 .h 文件添加到我的 viewcontroller.m 中,但如何将其调用为 UIColor?
UIColor *myColor = ?
【问题讨论】:
你想要+ (UIColor *) textBackground
而不是- (UIColor *) textBackground
。然后你可以像提供的答案一样简单地使用它。
【参考方案1】:
如果您执行以下操作会更好:
@implementation UIColor (Layout)
+ (UIColor *) textBackground
UIColor *lightGreen = [UIColor colorWithRed:0.0f/255.0f green:178.0f/255.0f blue:238.0f/255.0f alpha:1.0f];
return lightGreen;
@end
然后就叫它UIColor *myColor = [UIColor textBackground];
【讨论】:
他还需要导入类别。【参考方案2】:Huge screenshot showing coloured text
试试这个....它的工作原理!!!!
1.将UIColor
的子类命名为vv。
所以,在 UIColor+vv.h
#import <UIKit/UIKit.h>
@interface UIColor (vv)
+(UIColor*)mh;
@end
UIColor+vv.m
#import "UIColor+vv.h"
@implementation UIColor (vv)
+(UIColor*)mh
UIColor *lightGreen = [UIColor colorWithRed:0.0f/255.0f green:178.0f/255.0f blue:238.0f/255.0f alpha:1.0f];
return lightGreen;
@end
ViewController.m
#import "UIColor+vv.h"
- (void)viewDidLoad
lbl.textColor=[UIColor mh];
如果您有任何问题,请告诉我。
【讨论】:
你必须创建UIColor
的子类而不是LAyoput
。
这对您有帮助吗?如果您尝试此操作并遇到任何问题,请告诉我。它对我有用。
为什么要重复现有的答案?为什么是巨大的屏幕截图?
@MartinR,我不会重复相同的答案。只需查看所有其他答案。他们正在创建Layout
的子类,而不是UIColor
。 &其他答案不被接受,所以我尝试使用以下代码显示输出。【参考方案3】:
你应该让这个方法像...一样静态
@implementation UIColor (Layout)
+ (UIColor *) textBackground
UIColor *lightGreen = [UIColor colorWithRed:0.0f/255.0f green:178.0f/255.0f blue:238.0f/255.0f alpha:1.0f];
return lightGreen;
@end
然后使用类名来调用它
UIColor *myColor = [UIColor textBackground];
你应该像导入 UIColor+MyLayout.h
#import UIColor+MyLayout.h
【讨论】:
这是一个 class 方法,而不是 static 方法。事实上,上面已经给出了相同的答案。 静态方法实际上是类方法【参考方案4】:首先你必须在你的类中导入你的类别文件,例如:
#import "UIColor+Layout.h"
那么你需要调用这个方法为
[UIColor textBackground]
您还需要将您的类别方法设为类方法
【讨论】:
【参考方案5】:您可以通过在签名中使用+
而不是-
将textBackground
转换为类方法,然后简单地:
UIColor *myColor = [UIColor textBackground];
【讨论】:
以上是关于在 iOS 7 和 Objective c 中使用 UIColor 类别的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 在同一个项目中使用 Swift 和 Objective c?
使用 Objective C 在 iOS8 中分离横向和纵向视图
《iOS开发全然上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营