【问题标题】:Using a UIColor category in iOS 7 and Objective c在 iOS 7 和 Objective c 中使用 UIColor 类别
【发布时间】: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。然后你可以像提供的答案一样简单地使用它。

标签: ios objective-c ios7 objective-c-category


【解决方案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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2010-09-26
      • 2021-11-26
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      相关资源
      最近更新 更多