2017-11-22 7 views
0

Swift 4MaterialComponentsを使用して、ビューにシャドーを追加したいのですが、どうやってシャドーエレベーターを使うことができないのですか?同じ実装でdocumentationのようなShadowedViewという名前のクラスを作成した後、xibでUIViewサブクラスをShadowedViewに設定しました。しかし、このエラーでビルドに失敗しましたUse of unresolved identifier 'MDCShadowLayer'。ドキュメントは私にとってはっきりしていません。誰でも私に説明してください。MaterialComponentsをどうすればいいですか?iOS:MaterialComponents shadow

+0

残念ですが、コンポーネントをインストールしてインポートステートメントを覚えましたか?それは 'MDCShadowLayer'への参照を持たないように聞こえる – Brian

+0

@Brianは私のpodFileにポッド 'MaterialComponents/ShadowElevations'を追加しました。その後、私はクラスをコピー/ペーストします。ShadowedView –

+0

@Brianこれは私が正確にしたものです –

答えて

0

ここでわかったのはわかりました。

は、私は次のように私のPodfileを変え'MaterialComponents/ShadowElevations'

使用して含まれていなかった依存関係MDCShadowLayerがあった:私が使用している次に

# 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

を迅速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() 

だけの提案として、あなたはおそらく自分自身に多くの問題を節約したいです。その材料ライブラリを使用することは非常にほとんどの依存関係です