1

我想MaterialComponentsSwift 4我的视图中使用阴影,但我不明白如何使用阴影电梯。我创建了一个名为文档ShadowedView的类,具有相同的实现,然后在 xib 中我将 UIView 子类设置为. 但是构建失败并出现此错误。文档对我来说不清楚。谁能向我解释我该如何使用?ShadowedViewUse of unresolved identifier 'MDCShadowLayer'MaterialComponents

4

2 回答 2

3

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

有一个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的,并为它创建了一个出口,在这里命名为myViewViewController 中的名称。

然后在 ViewDidLoad 中:

myView.setDefaultElevation()

就像一个建议,如果你只是为你的视图创建自己的阴影,你可能会省去很多麻烦。使用该材质库需要很多依赖,但回报很少

于 2017-11-22T19:37:01.337 回答
0

您不需要导入整个MaterialComponnent.
只需将 pod 添加MaterialComponents/ShadowLayer到您的 pod。

于 2019-03-03T07:16:58.233 回答