Задача
Я начал разделять свой код на модули, поэтому я создал фреймворк под названием GEView
.
Проблема в конструкторе интерфейсов. UIView
подклассируется с использованием каркаса:
Однако я не вижу никаких @IBInspectable
свойств. Это сработало, когда этот класс был в проекте, а не разделен на фреймворк. Как я вижу это, чтобы я мог изменить свойства?
Рамочный класс
/// UIView subclass to allow creating corners, shadows, and borders in storyboards.
@IBDesignable
open class GEView: UIView {
/* ... */
// MARK: - Rounded corners
@IBInspectable
public var cornerRadius: CGFloat = 0 {
didSet {
layer.cornerRadius = self.cornerRadius
layer.masksToBounds = true
}
}
/* ... */
}
Фреймворк реализации
Я даже добавил import GEView
в класс для этого контроллера представления в конструкторе интерфейсов, который содержит это представление, которое все еще не работает.
Я впервые использую свой собственный фреймворк в проекте, чтобы я мог создать или импортировать его неправильно. Вот иерархия проекта:
Метод полуобработки
Мне удалось заставить Interface Builder
хотя бы узнать класс GEView
. Я попробовал этот код в моем проекте:
@IBDesignable
class IBGEView: GEView {
@IBInspectable
var _cornerRadius: CGFloat { return cornerRadius }
}
Тогда я бы подкласс в Interface Builder
с IBGEView
. Это ни в коем случае не решение, которое я искал, поэтому я все еще ищу. Это не решение.