iOS:MaterialComponents阴影

时间:2017-11-22 16:50:27

标签: ios swift material-components-ios

我想在我的select substring([0], 1, 100), substring([0], 101, 100), substring([1], 1, 100), substring([1], 101, 100) from ( select cast(serName as char(100)) + cast(serStatus as char(100)) ser, (row_number()over(order by serID) - 1) / 2 r1, (row_number()over(order by serID) - 1) % 2 r2 from myTable ) t pivot ( max(ser) for r2 in([0],[1]) ) p 中使用MaterialComponents为我的观点添加阴影,但我无法理解如何使用影子电梯。我使用相同的实现创建了一个名为Swift 4的类,如documentation,然后在xib中将UIView子类设置为ShadowedView。但是构建失败并出现此错误ShadowedView。文档对我来说并不清楚。任何人都可以向我解释如何使用Use of unresolved identifier 'MDCShadowLayer'

2 个答案:

答案 0 :(得分:2)

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

使用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()

作为一个建议,如果您只是为自己的观点创建自己的阴影,那么您可能会省去很多麻烦。使用该材料库有很多依赖性,但回报非常少

答案 1 :(得分:0)

您不需要导入整个MaterialComponnent
只需将Pod MaterialComponents/ShadowLayer添加到您的Pod中即可。