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];