Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #307】Viewの一部の角だけを角丸にする

はじめに

iOS11からViewの一部の角だけを角丸にすることができるようになった。今までは、一部の角だけを角丸にしようとすると、CALayerをいろいろ操作して作る必要があった。面倒なので、画像を作って対応してしまうこともあったと思います。

Viewの一部の角だけを角丸にする

CALayerにmaskedCornersプロパティが追加されました。CACornerMaskの配列を設定することができます。CACornerMaskは下記4つが用意されています。

CACornerMask

  • layerMaxXMaxYCorner 右下の角
  • layerMaxXMinYCorner 右上の角
  • layerMinXMaxYCorner 左下の角
  • layerMinXMinYCorner 左上の角

例えば、下記のように設定します。

// 右上の角と左上の角を丸くする
subview.layer.cornerRadius = 50
subview.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner]

サンプル

実際に使ってます。 Single Page Viewでプロジェクトを作成し、角丸のサブビューを画面に追加します。追加はviewDidLoadメソッドの中に追加しました。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.darkGray
    
        let subview = UIView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: 100, height: 100)))
        subview.center = view.center
        subview.backgroundColor = UIColor.yellow
        
        // 右上の角と左上の角を丸くする
        subview.layer.cornerRadius = 50
        subview.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner]
        
        view.addSubview(subview)
    }
}

実行すると下記の画面が表示されます。 f:id:fjswkun:20180127130201p:plain

サンプルダウンロード

下記のリンクからダウンロードできます。

SamplePartialCornerRadius.zip - Google ドライブ

Swift

入門書籍

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第5版
プログラミングが初めて!という人が小さなアプリを作ることで、アプリ開発を学ぶことができます。
「Swiftだけでなく、プログラミング自体が初めてなんだけど、どの本が良い?」と聞かれたときには、
この書籍をおすすめしています。

本気ではじめるiPhoneアプリ作り Xcode 8.x+Swift 3.x対応 (ヤフー黒帯シリーズ)
アプリ開発からApp Storeへの公開までの一通りを学ぶことができます。
入門書を2冊、3冊を読んだあとでこの書籍を読むとかなりの実力アップを感じることができます。

ただし、一通り学ぶことができますが、プログラミング初めてでこの書籍を選ぶことはオススメできません。
最初の方の内容はプログラミング初心者には理解が難しく、そこで勉強をやめてしまう可能性がありそうだと感じます。

Swiftポケットリファレンス
辞書として1冊は持ってても良い。

仕事でやれるレベルになるために

初心者から仕事でやれるレベルになるためにオススメできる日本語書籍がみつかりませんでした。
英語は苦手でも、書籍に書かれているソースはやさしく、読み進めることができます。

The iOS Apprentice (英語サイト・英語書籍)
Swift Apprentice (英語サイト・英語書籍)

平均的プログラマーを超えるために

詳解Swift 第3版
Swift3の書籍。第1版、第2版にもお世話になっています。
Swiftの文法についてとても詳しく書いてあります。

Ray Wenderlich | Tutorials for iPhone / iOS Developers and Gamers
QiitaのSwiftに関する記事