ブックマーク / qiita.com/morizotter (3)

  • Cellなどの高さ計算の処理をViewのstructで行う - Qiita

    ちょっとしたtipというかメモ的な記事です。最近、これでうまくいっているので自分に刻み付ける目的もあって書きます。 セルに複数行の文字を出力したい場合、セルの高さ計算が必要です。iOS8からself-sizingが加わりましたが、表示時は良いのですが画面に表示するセルが多くなった時に、セルの高さ計算がうまくいかずスクロールがかくつくという問題に直面し、結局計算をしています。 その際の計算処理をどこにどう書くかということです。 僕はMVVMで開発していて、モデルの情報は一旦 ItemViewModel というようなViewModelにもたせます。その段階で表示時の見た目を用意したりできるのですが、そうすると複数の違う見せ方をしたい時に複数のビューの見た目を持つのはやっぱりおかしいです。ViewのことはViewにやらせるのが良いと思って書き換えました。 構造 具体的にいうと下記のような構造にな

    Cellなどの高さ計算の処理をViewのstructで行う - Qiita
    yfnt
    yfnt 2015/10/06
  • StoryboardやXibファイルからインスタンスを生成するprotocol - Qiita

    protocol InstantiateFromNibable { typealias Instance static func instantiateFromNib() -> Instance } SlideShareの swift-style-guideから着想を得た。すごくシンプルなんだけど使い勝手は良いと思ってます。 Xibファイルなのか、Storyboardのinitialなのか、StoryboardにあるViewControllerなのか、幾つかのパターンでビューをインスタンス化したいケースがあると思いますが、この方法だとそのインターフェイスを統一できます。 久しぶりに使うビューでもとりあえず、<クラス名>.insta..など打つとすぐに使えるかどうかがわかります。 具体的に下記のように追加します。 Xibファイルの場合 LoadingFooterViewにはこのように書く。

    StoryboardやXibファイルからインスタンスを生成するprotocol - Qiita
    yfnt
    yfnt 2015/09/28
  • Bolts-iOSのとっても簡単な使い方説明 - Qiita

    Objective-Cとのブリッジファイルを作成する 適当なObjective-Cファイルを作成して追加します。その際に、Bridging-Headerを追加するか聞いてくるので、YESを押します。File > New > File > (iOS or OS X) > Source > Header File をして、 <プロジェクト名>-Bridging-Headerとしても追加可能です。 Bridging-Headerファイルに下記のように記述します。 これで準備が出来ました。 非同期処理を直列で処理する 一番簡単で利用頻度も高いと思われる非同期処理を直列で処理する方法について説明します。下記のサンプルコードを参照して下さい(サンプルコードは文末にリンクがあります)。例はYahooと通信してから、Googleと通信する例です。実行するとそれぞれ非同期通信にもかかわらず、必ずYahoo!

    Bolts-iOSのとっても簡単な使い方説明 - Qiita
    yfnt
    yfnt 2014/10/20
  • 1