iOS ›› Почему я не могу получить доступ к UIView.layer.properties?

У меня есть UIView в файле .xib, подключенном к соответствующему файлу .h как IBOutlet. Я хочу установить свойства слоя: borderColor, borderWidth и angleRadius.

Я сделал это однажды, и это было довольно легко. Это было что-то вроде:

-(void) viewDidLoad {
     [super viewDidLoad];
     self.myView.layer.borderColor = [UIColor blueColor].CGColor;
     self.myView.layer.borderWidth = 1.0f;
     self.myView.layer.cornerRadius = 10.0f;
}

По какой-то причине, когда я делаю это в этом новом проекте, эти свойства слоя недоступны. Когда я пишу «self.myView.layer». У меня нет вариантов для заполнения.

Кто-нибудь знает, в чем может быть проблема?


person Ohad Regev    schedule 16.08.2012    source источник
comment
Какую версию XCode вы используете?   -  person James Webster    schedule 16.08.2012
comment
4.что-то. Другой проект, где он работает нормально, был выполнен с той же версией XCode.   -  person Ohad Regev    schedule 16.08.2012
comment
@JamesWebster это не имеет значения.   -  person    schedule 16.08.2012
comment
Возможно, ваше автозаполнение временно не работает. Вы ввели его полностью, чтобы убедиться, что он работает?   -  person Bourne    schedule 16.08.2012
comment
@ H2CO3 H2CO3 Нет, если это проблема индексации в более старых версиях XCode, которая останавливает автозаполнение автозаполнения.   -  person James Webster    schedule 16.08.2012
comment
@JamesWebster Тогда, конечно, вы были бы правы. :) Но, увидев проблемы, связанные со свойством слоя UIView, я был уверен, что отсутствовал импорт заголовка (потому что это ошибка, с которой я часто сталкивался в отношении новых разработчиков...)   -  person    schedule 16.08.2012


Ответы (4)


Добавьте фреймворк QuartzCore в свой проект

#import <QuartzCore/QuartzCore.h> 

в вашем файле .h или .m

person Paresh Navadiya    schedule 16.08.2012
comment
Верно... Я на самом деле сделал // в строке #import ‹QuartzCore/QuartzCore.h› в проекте, где это работало, и это не дало мне никаких ошибок в этих строках кода; так что я предположил, что это не проблема. Но сейчас работает нормально. Спасибо. - person Ohad Regev; 16.08.2012

Вы должны

#import <QuartzCore/QuartzCore.h>
person Community    schedule 16.08.2012

Если у вас есть весь импорт в порядке:

#import <QuartzCore/QuartzCore.h>

тогда, возможно, это известная проблема индексации в более старых версиях XCode.

Откройте папку ~/Library/Developer/Xcode/DerivedData и удалите папку с названием вашего приложения.

person James Webster    schedule 16.08.2012

попробуйте это 1. Добавьте фреймворк QuartzCore в свой проект

#import <QuartzCore/QuartzCore.h>

2.

 -(void) viewDidLoad {
     [super viewDidLoad];
     CALayer *myViewlayer = self.myView.layer;
     [myViewlayer setBorderColor:[UIColor blueColor].CGColor];
     [myViewlayer setBorderWidth:1.0f];
     [myViewlayer setCornerRadius:10.0f];

}
person Rahul Lalit    schedule 16.08.2012