Как использовать colorLiteral, imageLiteral в объективе c - PullRequest
1 голос
/ 07 октября 2019

Я недавно научился использовать colorLiteral и imageLiteral в Xcode 11. Он отлично работает в моем файле swift. Как я могу использовать colorLiteral и imageLiteral в файле Objective C?

Кажется, Xcode не поддерживает colorLiteral и imageLiteral для Objective C.

Ответы [ 3 ]

1 голос
/ 07 октября 2019

Со ссылкой

Objective-C не поддерживает color literal и Image literal. Оба вводят в Swift, ранее

  • Для использования изображения в Objective-C
UIImageView *imgview = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 300, 400)];
[imgview setImage:[UIImage imageNamed:@"YourImageName"]];
[imgview setContentMode:UIViewContentModeScaleAspectFit];
[self.view addSubview:imgview];
  • Для цвета
UIColor *lightGrayHeader = [UIColor colorWithRed:246/255.f green:239/255.f blue:239/255.f alpha:1.0];
self.view.backgroundColor = lightGrayHeader;

Если вы хотите использовать статический метод на UIColor для получения colour, вы можете сделать это:

@interface UIColor (MyColours)
+ (instancetype)lightGrayHeader;
@end

@implementation UIColor (MyColours)
+ (instancetype)lightGrayHeader {
  return [self  colorWithRed:246/255.f green:239/255.f blue:239/255.f alpha:1.0];
}
@end

And then as long as you import the UIColor (MyColours) header, you could use:

self.view.backgroundColor = [UIColor lightGrayHeader];
1 голос
/ 07 октября 2019

Вы не можете. Эти функции недоступны в Objective-C, только в Swift.

Это ключевые слова Swift

0 голосов
/ 07 октября 2019

Оказывается, что эти функции недоступны в Objective-C. Мой обходной путь - создать быстрый файл для imageLiteral и colorLiteral и импортировать их в целевой файл c.

Utils.swift

import UIKit

@objc class Utils: NSObject {



   @objc var textColor = #colorLiteral(red: 0.5609482021, green: 1, blue: 0.3726723031, alpha: 1)

}

Файл Objective C:

Utils * utils = [Utils new];
label.textColor = utils.textColor;

Таким образом, я могу воспользоваться функцией colorLiteral для проекта Objective-C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...