1. ホーム
  2. iphone

UIImageViewの背後に影を作成する最適な方法は何ですか?

2023-10-25 22:43:03

質問

私は後ろに影を追加したいUIImageViewを持っています。私はappleがプロパティとしてそれを持つことを望みますが、彼らは私たちプログラマーのために多くのことを難しくしなければならないので、私はこの質問をする必要があります。

どのように解決するのですか?

もっと簡単で良い方法があります。 UIImageViewはUIViewを継承しているので、レイヤープロパティを持っています。 レイヤーの影のプロパティにアクセスすれば、バンバン影ができます。

UIImageViewをnibファイルへのIBOutletとして持っている場合、awakeFromNibを実装するだけでいいのです。 などを実装します。

Objective-C

- (void)awakeFromNib {
    imageView.layer.shadowColor = [UIColor purpleColor].CGColor;
    imageView.layer.shadowOffset = CGSizeMake(0, 1);
    imageView.layer.shadowOpacity = 1;
    imageView.layer.shadowRadius = 1.0;
    imageView.clipsToBounds = NO;
}

忘れちゃいけないのが #import "QuartzCore/CALayer.h"


Swiftの場合、複数の方法があります。 クラス拡張、サブクラス、または imageView インスタンスを作成します。 どの方法であっても、レイヤーのシャドウプロパティを変更する際のプロセスは同じです。

Swift 3

override func awakeFromNib() {
    super.awakeFromNib()

    imageView.layer.shadowColor = UIColor.purple.cgColor
    imageView.layer.shadowOffset = CGSize(width: 0, height: 1)
    imageView.layer.shadowOpacity = 1
    imageView.layer.shadowRadius = 1.0
    imageView.clipsToBounds = false
}