iOS: тень материальных компонентов
Я хочу использовать MaterialComponents
в моем Swift 4
чтобы добавить тень к моим взглядам, но я не могу понять, как я могу использовать теневой лифт. Я создал класс с именем ShadowedView
как документация с той же реализацией, то в xib я устанавливаю подкласс UIView в ShadowedView
, Но сборка не удалась с этой ошибкой Use of unresolved identifier 'MDCShadowLayer'
, Документация мне не понятна. Может кто-нибудь, пожалуйста, объясните мне, как я могу использовать MaterialComponents
?
1 ответ
Хорошо, вот что я смог выяснить.
Была зависимость MDCShadowLayer
который не был включен с помощью 'MaterialComponents/ShadowElevations'
Я изменил свой Podfile на следующее:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'TestMaterialShadow' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for TestMaterialShadow
pod 'MaterialComponents'
end
затем pod install
Я использую Swift 3, так что для меня сработало так:
import UIKit
import MaterialComponents
class ShadowView: UIView {
override class var layerClass: AnyClass {
return MDCShadowLayer.self
}
var shadowLayer: MDCShadowLayer {
return self.layer as! MDCShadowLayer
}
func setDefaultElevation() {
self.shadowLayer.elevation = ShadowElevation.cardResting
}
}
Обратите внимание на изменение в setDefaultElevation()
Там, кажется, есть другие настройки, такие как ShadowElevation.carPickedUp
и т.д., которые вы можете использовать автозаполнение, чтобы изучить себя.
Затем я создал UIView с помощью конструктора интерфейса, установив его класс на то, что я назвал ShadowView
и создал выход к нему, названный здесь как myView
в ViewController.
Затем в ViewDidLoad:
myView.setDefaultElevation()
Как совет, вы, вероятно, избавите себя от многих проблем, если просто создадите свои собственные тени для своих видов. Использование этой библиотеки материалов дает много зависимостей за очень мало взамен
Вам не нужно импортировать весь MaterialComponnent
,
Просто добавьте стручок MaterialComponents/ShadowLayer
к твоим стручкам.