0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【iOS】レシート風 CardViewの作成(WIP)

Last updated at Posted at 2020-01-25

はじめに

レシート風のCardViewを一緒に作ってみよう!

実装

大まかな流れは,

  1. Main.storyboardにレシートの土台となるViewをおく
  2. レシートViewの細かい設定
  3. 他の部品を置いてよりレシートっぽく
  4. labelデータの反映(後日記載)
    となっています.また,今回の記事は以下の動画を参考にしております.
    参考:Card View in iOS (Xcode8 , Swift3)

1. storyboardの準備

まずは,Main.storyboardにViewをおきます.
スクリーンショット 2019-05-28 16.45.25.png

ここで,AutoLayoutの設定もしておきましょう.画面全体に表示したいので,今回は上下左右全て10pxだけ余白をとります.ぽちぽち.
スクリーンショット 2019-05-28 16.54.22.png

AutoLayoutについて詳しく知りたい人はこちらをオススメします.
怖くない!AutoLayout 〜多画面対応 with Storyboard〜

2.レシートViewの設定

続いて,Viewに影をつけていく設定をしていきましょう!
UIViewファイルを追加しましょう.ここではReceiptViewと名付けます.
スクリーンショット 2019-05-28 17.00.11.png

作れたら,中身を書いていきましょう.
レシートの影の色や大きさ,不透明度,またViewの角を丸くしたい時もここに書いていきます.

ReceiptView.swift
import UIKit

@IBDesignable class ReceiptView: UIView {

    //影の設定
    @IBInspectable var shadowOffSetWidth : CGFloat = 0  //影の横幅
    @IBInspectable var shadowOffSetHeight : CGFloat = 5  //影の縦幅
    @IBInspectable var shadowColor : UIColor = UIColor.black  //影の色
    @IBInspectable var shadowOpacity : CGFloat = 0.5  //影の不透明度
    
    override func layoutSubviews() {
        layer.shadowColor = shadowColor.cgColor
        layer.shadowOffset = CGSize(width: shadowOffSetWidth, height: shadowOffSetHeight)
        layer.shadowOpacity = Float(shadowOpacity)
    }
        
}

@IBDesignable@IBInspectableは簡単に言うと,デフォルトでいじれない設定をいじれるようにしたり,storyboard上でリアルタイムで見た目を変えてくれるための呪文みたいなもの.
詳しくはこちらの記事を参考に!
参考:【決定版】IBDesignable, IBInspectable

さぁ,ここまできたらMain.storyboardで作成したUIViewファイルを紐付けましょう!
スクリーンショット 2019-05-28 16.06.12.png

1で置いたViewを選択し,Classに先ほど作成したUIViewファイル名(今回はReceiptView)を手打ち.自動的に読み込みがスタートし,影がついたら成功!何も動かない場合は⌘+Bでビルドしてみましょう.
ここまできたら,一度Runしてみましょう!以下のようになりましたか?
スクリーンショット 2019-05-28 16.13.10.png

背景を暗くしても◎

ViewController.swift
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = UIColor.gray
    }
スクリーンショット 2019-05-28 16.16.03.png

3.他の部品を置いてよりレシートっぽく

タイトルや日付,セットリストなど自分の好きなデザインに必要なlabelや画像を配置していきましょう.
ここからはあなた次第!
スクリーンショット 2019-05-28 16.34.06.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?