Cocoa свойства touch touch не отображаются в App Project

Я пытаюсь с самого утра создавать мастерскую cocoa, чтобы помещать в нее свой собственный виджет и разрешать любое приложение, над которым я работаю, использовать его в будущем.

Мне удалось создать проект и экспортировать файл .framework, но все активы сейчас не отображаются. все мои изображения находятся в каталоге активов.

И они, кажется, экспортируются, так как файл .framework имеет (assets.car) файл внутри него.

В настоящее время я обращаюсь к ним с помощью

UIImage* icon = [UIImage imageNamed:@"iconName"];

Но он всегда возвращает null, любые идеи?

Ответы

Ответ 1

При создании образа вы можете предоставить пакет рамки. В Swift 2:

class func getMyImage() -> UIImage? {
    let bundle = NSBundle(forClass: self)
    return UIImage(named: "YourImageName", inBundle: bundle, compatibleWithTraitCollection: nil)
}

Swift 3:

class func getMyImage() -> UIImage? {
    let bundle = Bundle(for: type(of: self))
    return UIImage(named: "YourImageName", in: bundle, compatibleWith: nil)
}

Вот демонстрационный проект, содержащий фреймворк с изображением и приложение, которое его использует.

https://github.com/marketplacer/AssetFrameworkDemo

Ответ 2

Вы можете попробовать получить доступ к своим изображениям как:

UIImage* icon = [UIImage imageNamed:@"MyLib.framework/iconName"];

Отметьте этот вопрос о создании фреймворков, содержащих ресурсы.

Также я рекомендую использовать CocoaPods, даже если ваш код закрыт.

Ответ 3

Пожалуйста, попробуйте получить изображение в формате .framework, как показано ниже:

[[UIImage alloc] initWithContentsOfFile:@"Test.framework/abc.png"];

Я предполагаю, что вы скопировали фреймворк и являетесь частью пакета приложений

Ответ 4

У меня есть статический класс, который помогает вызывающему фреймворку. Он имеет метод под названием

+ (NSBundle*) bundelForHelper;

Реализация выглядит так:

+ (NSBundle*) bundelForHelper{
    return [NSBundle bundleForClass:self];
}

Затем в моем представлении контроллер я импортирую помощника и вызываю его в viewdidload:

UIImage *image = [UIImage imageNamed:@"MyImage"
                            inBundle:[MyHelper bundelForHelper]
                 compatibleWithTraitCollection:self.traitCollection];