2016-01-01から1年間の記事一覧

iOSアプリ開発の証明書周りがよくわかっていないので自分なりに整理してみた

iOS

iOSアプリの証明書周り、非常にわかりにくい。 開発時に毎回どうだったっけ?って忘れてしまうので、自分なりに整理してみました。 証明書周りの構成 証明書周りの構成は4つに分類されています。 App ID 証明書 端末 プロビジョニングファイル developmentと…

【vim】正規表現のマッチする範囲を指定して文字列置換をもっと簡単にする

vim

\zsと\zeを使えば、正規表現のマッチする範囲を指定できて、置換がとても楽になる。 例えば、 <div>ABCDEF</div> <p>123456</p> <div class="sample">abcdef</div> という文字列があって、divタグの中身だけ変えたい時。 普通にやると、ちょっとめんどくさい正規表現を書かないと置換できません。 %s/\(<div.*>\)</div.*>…

【swift】Viewの一部を角丸にする

swiftで角丸のViewを作るには、layerのcornerRadiusを設定すれば簡単にできますが、これだと4隅すべてが角丸になってしまいます。 上だけを角丸にしたい時などには、一部だけ角丸のパスをUIBezierPathで作成し、CAShapeLayerに設定します。 developer.apple.…

【swift】グラデーションを描画する

swiftでグラデーションを描画するには、CAGradientLayerを使います。 developer.apple.com let startColor = UIColor(white: 0, alpha: 0).CGColor let endColor = UIColor(white: 0, alpha: 1).CGColor let layer = CAGradientLayer() layer.colors = [star…

【swift】Viewに自分自身の大きさを定義して、動的なViewを正しくレイアウトする

動的に要素を並べるようなViewを作成した時に、AutoLayoutの設定の仕方で悩みました。 class CustomView: UIView { init() { super.init(frame: .zero) backgroundColor = .whiteColor() // 正方形のViewを左右に並べる let view1 = UIView(frame: CGRect(x:…

【swift】ViewControllerとViewを分離させてViewControllerの記述を減らす

最近は、storyboardもxibも使わない方針で実装しているため、Viewを構築するのも全てコードで定義しています。 特に考えなければ、initializeの時に組み立ててしまうのですが、そうするとViewControllerとは関係のないコードが増えていき、可読性が悪くなり…

【swift】UITableViewCellの選択した時の表示を変更する

selectionStyleを変更するだけです。 import UIKit class CustomCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() // Initialization code selectionStyle = .None } }

【android】エミュレータのhostsを書き換える

Android Debug Bridge (adb) を使用して ローカルにあるhostsファイルをエミュレータ上に配信させて書き換えます。 まず、エミュレータをroot権限で操作できるように設定します。 $ adb root remountします。 $ adb remount 127.0.0.1のまま差し替えちゃうと…

【swift】コードでAutoLayout その1 - Visual Format Language

コードでAutoLayoutを記述します。 iOSにはVisual Format LanguageというAutoLayoutを直感的に定義できるフォーマットが用意されており、使い方さえ覚えてしまえばちょっとした制約であればサクッとコードで書けてしまいます。 developer.apple.com 使ってみ…

【swift】対象のビューのAutoLayoutを計算した後のCGSizeを取得する

tableViewCellの高さ計算の時など、コード上で対象のViewのAutoLayoutを計算した後のサイズを取得したい時があります。 そんな時は、systemLayoutSizeFittingSizeを使います。 引数で渡す値に応じて、コンテンツを表示するための最小サイズか、最大サイズのC…