タグ

Objective-Cと*Programmingに関するyou_gotのブックマーク (15)

  • Core Textで縦書きを - Okanoyou Today

    iOSにも3.2からCore Textが導入された。よって、縦書きが簡単にできるのだろう、と思ったのだが… 結論。できない。 だが、Core Textや縦書きに関してあまりにも参照できるところが少ないので、ここ数日で知り得た事を書いておく。 Core Textの日語資料というものは皆無なので、手さぐりでやっていくしかない。例えば、"Core Text 縦書き"でググると、MOSAが2年前に開いたセミナーがひっかかる。まさに欲しいのはコレ。この技術なのだが、今となっては知る由もない。 簡単なところでは、Appleのサンプル"CoreTextTest"が理解の助けになる。 これを見ていくと、CTFramesetterRefというのに各種アトリビュートをセットして、CTFrameRefとか、CTLineRefとかいうのを作って描画すればいいことがわかる。で、各種アトリビュート名からヘッダファイ

    Core Textで縦書きを - Okanoyou Today
    you_got
    you_got 2012/01/08
    CoreText で縦書きをする場合のメモ
  • スマートフォンのUI設計をするための前提 | takahirokoyanagi.com

    you_got
    you_got 2011/10/28
    これは iOS/Android 技術者必読
  • 出版プラットフォームとしてのiOS

    PDFを高解像度でドローする機能 CGContextDrawPDFPageで関数、ともかくPDFは描画できるようになるが、ここで大きな問題が生じる。ズームなどをうまく処理したら、大きく拡大してみよう。CGContextDrawPDFPageでの描画結果は解像度はあまり高くなく、ちょっと拡大してもぼやけた画像しか見えない。特に、テキストがぼやけるのはいやがる人が多いだろう。 そこで、もっと解像度を高くできないかということになる。その手法は用意されているが、ここではCore Animation(以下CA)の仕組みが絡む。CAで定義されているレイヤーという機能があり、ビューはいくつかのレイヤーで構成されている。そこをうまく利用すれば、解像度の高いつまりは拡大してもぼやけないPDFの描画ができる。 ここからは、「Quartz 2D Programming Guide」ではなく「Scroll Vie

    you_got
    you_got 2011/07/17
    PDFの描画について、詳しい。
  • UITableViewにcellを動的に追加/削除する2つの方法。 | cocoa*life

    you_got
    you_got 2011/07/17
    これはつかいたい!
  • UINavigationControllerのアニメーションをカスタマイズする方法 – CAPH TECH

    UINavigationControllerでビューコントローラーをpush/popするときのアニメーションはスライドです。このアニメーションをカスタマイズしてみます。 ここではフェードを行ってみます。 まずはpushです。 - (IBAction)push { SubViewController *subViewController = [[[SubViewController alloc] initWithNibName:nil bundle:nil] autorelease]; subViewController.view.frame = self.view.bounds; subViewController.view.alpha = 0.0; [self.view addSubview:subViewController.view]; [UIView transitionWithV

    you_got
    you_got 2011/07/12
    もっとカスタマイズしたいなぁ
  • 再利用可能なUIViewのパーツをInterfaceBuilderで作る方法 - Awaresoft

    Interface Builderで画面をデザインする時、基的には1つの画面に1つのViewControllerと1つのXibファイルを用意することになります。しかし、これだと複数の画面や別のアプリでも使い回せるはずのUIパーツをそれぞれのXibファイルに用意しなければならなかったり、一つの画面に同じパーツを複数並べて使うといったことがやりにくくなります。 再利用可能なUIパーツをInterface Builderを使って簡単につくる方法を調べてみたのですが、基的な事項の割にはドキュメントやサンプルが見つけられずに苦労してしまったのでまとめておきます。(Appleのサンプルでは一部をIBで、一部をコードで行うものはありましたが、できることなら極力IBを使うようにしたいところです。) まず、メインのViewControllerのXibファイルにViewControllerを追加してパーツ

    you_got
    you_got 2011/05/17
    良記事感謝!やりたかったことができました。
  • Cocoa と touch, Cocoa で touch: Table View のインデックスと日本語対応

    前回に引き続き、Table View のメソッドを見ていきます。  iPod (touch) 機能でアーティスト、曲名などを表示する場合、右端にインデックスのリストが表示されます。これを実現するのが、UITableViewDataSource の以下のメソッド。 - (NSArray *)sectionIndexTitlesForTableView: (UITableView *)tableView;  このメソッドを実装して、NSString を要素にもつ配列を返せば、それがインデックスのリストに使われます。 - (NSArray *)sectionIndexTitlesForTableView: (UITableView *)tableView { NSArray *indexTitleArray; indexTitleArray = [NSArray arrayWithObjects

    you_got
    you_got 2011/05/13
    ローカライズインデックスを自分で編集する方法。便利やな。
  • iOSアプリ開発のメモリ管理で気をつけること - A Day In The Life

    Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS

    you_got
    you_got 2011/04/04
    ちょっと古い記事だけど、よくまとめてある。iOSプログラマでメモリ周りが苦手な方は一読を。
  • UITableViewの背景に画像を使う

    @hkato193さんよりTwitter経由での質問があったので参考までに 実際に私の稚拙アプリの中では背景を変更しているのでその方法を書いておきます。(表示が見づらいのはご了承ください) UIColor *col = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.png"]]; [tableView setBackgroundColor:col]; [col release]; この定義で背景画像(background.png)が背景に表示されるかと思います。

    UITableViewの背景に画像を使う
    you_got
    you_got 2011/01/12
    これは便利!繰り返しも勝手にやってくれるんですな〜
  • ここギコ!: Objective-Cのpropertyでretainを指定した時の挙動に関する実験

    « Google中国地図は、中国谷歌地図と世界Googleの路線図が同じ座標系で、世界Googleの衛星だけが別座標系 | Main 最初に言語の仕様を全部舐めてから開発に取り組むようなタイプの人には当たり前の事かもしれないけど、Objective-Cのpropertyでretainを指定した時の挙動に関してちょっと実験を行ったので、書いておきます。 まず、Objective-Cのオブジェクトの挙動について基的なところ。 Objective-Cのオブジェクトは、allocされた親オブジェクト内で、親オブジェクトが消える前にreleaseされなければ、解放されずメモリリークしてしまいます。 また、別のオブジェクトに子オブジェクトを受け渡しても、親オブジェクトが受け渡し先オブジェクトより先に(ちゃんと子をreleaseした上で)消えれば、その時点で子オブジェクトは解放されてしまうため、

  • OCMock

    Mock objects for Objective-C Stubs – return values for specific method invocations Dynamic Mocks – verify interaction patterns Partial Mocks – overwrite methods of existing objects Adding OCMock to your project Download a release from the downloads page. For iOS development add the static library to your test target. This is described in detail on the iOS page. For OS X development simply add OCMo

    OCMock
  • Objective-CでTwitter APIを使う 色々 - すぎゃーんメモ

    Twitter APIの認証 Twitter APIの使用は、現在"BASIC認証"と"OAuth"の2通りの方法が用意されている。が、今年6月(?)でBASIC認証が使えなくなるという噂で、今後はAPIを使用するのにはOAuthを使用する必要が出てくるようだ。 まぁBasic認証はパスワードだだ漏れになっちゃうからやめておこうよ、という話ですかね。 Basic認証 - Wikipedia Code — OAuth iPhoneアプリTwitter APIを使いたい場合 結構iPhoneTwitterクライアントアプリってたくさんあるけど、どういう実装なのだろう? 大抵は初回起動時に設定画面でユーザー名とパスワードを入力させて、それを使ってBASIC認証でアクセスしているのではないのかな? BASIC認証を使うAPIアクセスの実装は比較的簡単。(base64エンコーディングを実装せずに

    Objective-CでTwitter APIを使う 色々 - すぎゃーんメモ
  • [iPhone編]メモリー管理を怠ってはならない

    iPhoneは、先進的なデザインやユーザーインタフェースによって、とてもパワフルな印象を受ける。だが、あくまでも携帯端末であり、やはり相応の小さい性能しか持っていない。 その制約により、iPhoneでは、メモリー管理に「GC(ガベージコレクション)」を採用していない。GCの実行にはそれなりに大きなCPUパワーが必要となるからだ。 代わりに、iPhoneではメモリー管理に「リファレンスカウンタ」方式を採用されている。オブジェクトのインスタンスがプログラム中の何カ所から参照されているかをカウントする方式で、リファレンスカウンタが1以上かどうかで、オブジェクトの生存か破棄かを判断する。 この方式では、変数の中にインスタンスを保持しておく必要がある場合「retainメッセージ」を発行してカウンタを増やし、不要になったらインスタンスを解放するために「releaseメッセージ」を発行してカウンタを減ら

    [iPhone編]メモリー管理を怠ってはならない
    you_got
    you_got 2010/08/27
    メンバー変数に nil をセットするところまで頭が回ってなかった。
  • http://iphone-rejectdb.appspot.com/

  • Cocoaの素、Objective-Cを知ろう - @IT

    Objective-C初心者のための入門連載です。Objective-Cとは何かの基礎知識から、さまざまな基構文/文法(変数、データ型、nil、配列、プロパティ、アクセサ、クラス、スーパークラス、ルートクラス、サブクラス、ポインター、メソッド、インスタンス、リンク、ラッパークラス、コンパイラディレクティブ、id、メッセージ式、文字列操作、forなどの繰り返し(ループ)、列挙子、ディクショナリ(連想配列)、高速列挙、オブジェクト指向、継承、プロトコル、多重採用、セレクター、クラスクラスター、カテゴライズ、カテゴリ、メモリ管理、ガベージコレクション、参照カウンターなど)を、書き方が分かる豊富なサンプルコードとともに解説します。

  • 1