我想在MaterialComponents中使用Swift 4将阴影添加到视图中,但是我不明白如何使用阴影升降器。我使用相同的实现创建了一个类似于documentation的名为ShadowedView的类,然后在xib中将UIView子类设置为ShadowedView。但是构建失败,出现此错误Use of unresolved identifier 'MDCShadowLayer'。该文档对我来说还不清楚。谁能告诉我如何使用MaterialComponents

最佳答案

好的,这就是我能够弄清楚的。

有一个依赖项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,并为其创建了一个出口,在此在ViewController中将其命名为myView

然后在ViewDidLoad中:
myView.setDefaultElevation()

只是建议,如果只是为视图创建自己的阴影,那么您可能会省去很多麻烦。使用该材料库有很多依赖关系,但回报很少

10-04 16:25