【Swift】UIBezierPathクラスのlineCapStyleでハマってしまった

やっとわかったよー。
referenceを見ても書いてなかったので(どっかには書いてあるのかもしれないけれど見つからなかったです。。。)

 

いくつも調べてもこのように書かれているところばかり

//エラーが出る
bezierPath.lineCapStyle = kCGLineCapRound

しかし、私の環境では何故かエラーが出る。

Swift2.0では使えないのだろうか。

 

とりあえず解決法はこちら

bezierPath.lineCapStyle = .Round

単に.Roundと書けばOKでした。

 

ちなみに他のやつも

 

bezierPath.lineCapStyle = .Butt
bezierPath.lineCapStyle = .Round
bezierPath.lineCapStyle = .Square

 

で動きました。

または

 

bezierPath.lineCapStyle = CGLineCap.Butt
bezierPath.lineCapStyle = CGLineCap.Round
bezierPath.lineCapStyle = CGLineCap.Square

 

でも大丈夫です。

 

2018/04/14追記 Swift3以降はlowerCamelCase!
確かSwift3から

Swift4でも同様に。
bezierPath.lineCapStyle = .butt
bezierPath.lineCapStyle = .round
bezierPath.lineCapStyle = .square
LCCにしてあげればおkです。
Swift ,
コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

Write a Comment

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

UINavigationController + UIScrollView の組み合わせで使っている時に謎の余白ができる時

UINavigationController + UIScrollView の組み合わせで使っていて、UIScrollView 上に AutoLayout で上下左右0で View を設置しているのに、30px程度上にずれてしまうとき。

`navigationController.navigationBar.isTranslucent = false` にすると直るかもしれない。

ScrollView上のコンテンツとNavigationBarの重なっているところが透過していたら多分これで直せるはず。

通常のターゲットではちゃんと動いているのに、iOSSnapshotTestCase を用いたテストでだけこの対応が必要なのよくわからないけれど。。。

iOS

UITableView.RowAnimation の .none はアニメーションするよ

UITableView.RowAnimation の .none はアニメーションがnoneなわけじゃなく、デフォルトの設定を使うよという意味らしい。

The inserted or deleted rows use the default animations.

なのでアニメーションしちゃう。今更の気づき。

 

iOS

記事を書くほどでもないけれどメモっておきたいこと

テスト投稿。

例えばiphone7 の画面サイズ

750 × 1334
半分375 × 667

iOS
more