iOS

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

iOS

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

【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 } }

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

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

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

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

【swift】【iOS】UIViewからUIImageを生成する

facebookに写真をシェアしたい時などに、アプリ側で組みて立てたUIViewからUIImageを生成したい時があります。 例えばアプリ側でこんなViewを組み立ててみます。 これはソースコードは雑につくるとこんな感じです。 5つのUIViewで組み立てられています。 let…

【iOS】【swift】カスタムViewとxibを紐付ける

swiftで独自のViewを定義した時に、見た目をxibで整える方法をまとめます。 1. 独自のViewクラスの定義 class CustomView: UIView { } 2. 空のxibファイルを作成 3. xibで見た目を作成 4. File's Ownerで先ほどの独自Viewクラスを指定 これで、とりあえずxib…

【iOS】【Swift】convertRectを使ってframe位置を計算する親要素を変更する

要素の座標位置を取得するためには、その要素のframeを見ます。 view.frame.minX view.frame.minY この時の座標位置は親要素から見た時の相対的な位置になります。 例えばviewが3階層の構造になっている場合、それぞれの座標位置は下記のようになります。 黄…

【swift】Optional Bindingについて

前回swiftでのnilの取り扱いについてまとめました。 【swift】nilとoptionalな型の取り扱い - tanihiro.log 今回はnilを取り扱う時に便利な記法のOptional Bindingについてまとめます。 Optional Binding 必要になるケース 例えば、関数の中には返り値がOpti…

【swift】nilとoptionalな型の取り扱い

nilの扱い swiftでは通常、変数や定数にnilは代入できません。 var hoge: String = nil let fuga: String = nil これはコンパイルエラーになります。 nilを代入するためには、optionalであることを宣言するために型に?をつけます。 var hoge: String? = nil …

【swift】InterfaceBuilderを使用してViewControllerを組み立てる

objective-cと変わらないと思ってたらちょこっとだけ違いました。 新規ファイル作成から「Cocoa Touch Class」を選択して 「Also create XIB file」にチェックを入れれば、ViewControllerのファイルと一緒にxibファイルを作成されます。 objective-cであれば…

【swift】変数・定数・関数を定義する

最近swiftをちょっと勉強しだしたので、ちょっとずつメモを取っていこうと思います。 変数 var hoge: String = "hoge" // 型を宣言する var hoge = "hoge" // 宣言しなくても自動的に判定もする var hoge = "hoge", fuga = "fuga" // カンマで連続で定義する…

【objective-c】UIWebViewでローカルにあるHTMLを表示する

xcode内にHTMLを格納して、そのHTMLをWebViewで表示する方法です。 // UIWebViewの初期化 UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; // htmlのパスの取得(今回はsample.html) NSString *path = [[NSBundle mainBundle] p…

【iOS】UIViewに背景画像を設定する方法

UIColorにcolorWithPatternImageというメソッドがあるので、背景画像を渡して対象となるviewのbackgroundColorにセットするだけ。 UIImage *backgroundImage = [UIImage imageNamed:@"bg.png"]; self.view.backgroundColor = [UIColor colorWithPatternImage…

UITabBarControllerとUINavigationControllerを同時に使う

標準のミュージックアプリの様な、UITabBarとUINavigationを同時に使う方法をまとめます。 どうやるのか UINavigationControllerの配列を作り、UITabBarControllerに渡してあげるだけです。 // 各タブのrootとなるViewControllerを指定して // UINavigationC…

iOSエンジニアにモテるAPIを作るための3つのこと

最近、自分でobjective-cをちょこちょこ書いていて、API作る側もちょっと気をつけた方がいいなーと思ったことがありました。 それは、プロパティ名です。 1. "id"を使わない objective-cにはid型があるので、プロパティ名でそのままidを使うとまぁややこしく…

Xcodeのデバッガってコマンド叩けたのね

Xcodeでブレイクポイントを設定して処理を止めた時とかに出てくるデバッガ。 こいつ。 よくわからないエラーとかも吐いてくるので、あんまり好きじゃありませんでした。 しかも左側に出てくる変数とかは、中身が見れそうで見れない。 そのチラリズムの精神は…

【初めてのiPhoneアプリ開発】『週刊Qiita』をリリースしました!!

@hirotterと@ki_230の共同開発を経て、本日生まれて初めてiPhoneアプリをリリースしました! 週刊Qiita 作ったアプリは至ってシンプル。 Qiitaの週間ストック数ランキングを閲覧することができるだけです。 ※非公式アプリですが、Qiitaのサポートチームに問…

UINavigationBarのタイトルを画像にする方法

UINavigationBarのタイトルに画像を設定してみます。 こんな感じ。 UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]; self.navigationItem.titleView = titleImageView; ViewControllerのnavigationIt…

UINavigationControllerの基礎的な使い方

UINavigationControllerの使い方を簡単にまとめます。 UINavigationControllerを定義する まずは、UINavigationControllerを定義します。 その時、一番最初に表示したいViewのViewControllerを渡します。 TAViewController *viewController = [[TAViewContro…

セルをカスタマイズしてオシャレなUITableViewを作成する

InterfaceBuilderを使って、TableViewのセルをカスタマイズする方法をまとめます。 セル用のclassを新規作成 これでカスタムセル用のクラスが作成されますが、IntefaceBuilderがありません。 なので、作ります。これで空の状態のxibファイルが作成されます。…

UITableViewの基礎的な使い方

最近、UITableViewはなんとなく触れる用になってきたので、基礎的な使い方をまとめます。 とりあえず表示してみる とりあえず画面にtableViewを表示します。 UITableView *tableView = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableVie…