Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 658 - layerのプロパティ

次のTable Viewのチュートリアルを拡張しています。

yataiblue.hatenablog.com

「snapshotOfCell()」にあるlayerのプロパティをみていきます。

func snapshotOfCell(inputView: UIView) -> UIView {
  UIGraphicsBeginImageContextWithOptions(inputView.bounds.size, 
                           false, 0.0)
  let context = UIGraphicsGetCurrentContext()!
  inputView.layer.renderInContext(context)
  let image = UIGraphicsGetImageFromCurrentImageContext() as UIImage
  UIGraphicsEndImageContext()
        
  let cellSnapshot : UIView = UIImageView(image: image)
  cellSnapshot.layer.masksToBounds = false
  cellSnapshot.layer.cornerRadius = 0.0
  cellSnapshot.layer.shadowOffset = CGSizeMake(-5.0, 0.0)
  cellSnapshot.layer.shadowRadius = 5.0
  cellSnapshot.layer.shadowOpacity = 0.4
  return cellSnapshot
 }

layerのプロパティをみるのですが、UIViewに関して詳しい情報が以下のページにありました。

microscopium.eyesaac.com

この情報は助かりました。ここを参考にして1つずつプロパティを見ていきます。

var masksToBounds: Bool { get set }

この設定はレイヤーの外枠の外部を覆い隠すか表示させるかの設定です。当然「YES」なら外部がマスクされます。

f:id:yataiblue:20160430173427j:plain

この設定を「NO」にすると外側の背景が表示されます。

f:id:yataiblue:20160430173530j:plain

var cornerRadius: CGFloat { get set }

背景の角を丸くする設定です。「10」ぐらいが半円で、小さくすると角が徐々に角張っていきます。「0.0」ということは角は丸くないということです。

var shadowOffset: CGSize { get set }

CGSize(width: 0.0, height: -3.0)はデフォルト値で与えられています。これはシャドーの位置を決めます。 widthおよびheightに正の値を与えると、シャドーは右および下に作られます。負の値にすると左および上に作られます。コードの中の設定はwidthを「-5.0」にしているので左にシャドーを作っていると思いますが、viewの左右は固定されているのでこの設定の意味は無いような気がします... heightに「0.0」が設定されているのでシャドーは上下両方向に出現するということでしょう。

var shadowRadius: CGFloat { get set }

これは「ぼかし」の程度の設定です。大きくすればぼかしが大きくなります。

var shadowOpacity: Float { get set }

陰の透過度です。範囲は 0.0 (透明) から 1.0 (不透明)になりデフォルト値は「 0.0」です。

今日はここまで。