ラスタライズ? Xcode 6になって、『PDF でベクター画像を作って読み込んでおくと便利』といった話がありますが、そもそもこの方法ではプログラム実行時に実際にベクター描画しているわけではなく、あくまでビルド時に PDF から適切な大きさのビットマップ画像を自動生成(ラスタライズ)しているにすぎません。 なので、当然、描画内容を拡大したり回転したりすればジャギーが発生してしまいます。単なるビットマップです。 では、PDF をベクター描画して拡大などにも耐え得るようにするにはどうすればよいか? 実は古い iOS でも通用する方法でこれを実現することが可能です。実際、この内容は iOS 5のときのものほぼそのままになります。 なぜ PDF なのか(余談) 単なる余談ですが、グラフィックスエンジンという観点で OS X と iOS の歴史を振り返ってみます。 iOS は元々 OS X のサブセ
はじめに 表題の件、意外と知られていないような気がしたので、メモとして残すことにする。 iOS Beta版を入れたままその端末を放置しておくと、期限切れにより実質的に利用不可能となってしまう。iTunes経由でipswを用いてアップデート/ダウングレードしようにも、「『iPhoneを探す』をオフに……」「iPhoneをアクティベート……」といった警告が出る無限ループに陥ってしまう。 端末をリカバリーモードにする 端末をリカバリーモードにすると、(無限ループを抜けて)端末にipswをインストールすることができるようになる。 iOS デバイスをアップデートまたは復元できない場合 http://support.apple.com/kb/HT1808?viewlocale=ja_JP&locale=ja_JP リカバリモードを使う リカバリモードでは、デバイスを消去して復元するので、問題が解決され
はじめに Charles を使うと PC 上に HTTP プロキシを立てて端末の通信をキャプチャし、リクエストやレスポンスの内容を覗いたり書き換えることが出来る。類似のソフトウェアとして Wireshark や Fiddler, Paros がある。 アプリの開発をしていてよくあるのは、APIがスタブで固定値しか返してくれない、異常系エラーのデバッグがやりづらい、という場面だが、Charles なら通信を好きに値を書き換えられるのでこれらに簡単に対処することができる。 Charles は Java アプリなので OS X だけでなく Windows や Linux でも利用する事が出来る。本稿では OS X + iOS での利用を前提として Charles の導入から簡単な使い方までを説明するが、環境依存の箇所は適宜読み替えてほしい。 導入 本来は有料ライセンスだが、無料でも数分間だけ使用
Android でいう 9-Patch 的な画像引き延ばしができる。(9-Patch ほど小回りは効かない) 角丸ボタンなんかの素材は小さく作っておいて、実装側で引き延ばすやり方がエコかもしれない。 その場合、細かいノイズをかけたようなデザインは避け、平坦なグラデーションの方が都合が良い(ノイズ等だと残念な感じに引き延ばされ汚くなる)。 ノイズ系には後述の UIImageResizingModeTile を使用すると良い。 UIImage *image = [UIImage imageNamed:@"ButtonNoGazou.png"]; // image の上0pt, 左4pt, 下2pt, 右8pt の padding を残して引き延ばす UIImage *btnbg = [image resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4
Unicode Technical Standard #35 Unicode Locale Data Markup Language 日付表記の RFC 3339 とか ISO 8601 とかなんかあれ系のやつ。 それぞれの規格の区別は正直よくわからないが、NSDateFormatter は Unicode の規格に対応している。 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW13 表記 年月日 yyyy-MM-dd 例:2014-06-29 年月日T時分秒および時間帯 yyyy-MM-ddTHH:mm:ssZ 例:2014-06-
はじめに Xcode にはじめから入っているスニペット、編集できなくてもどかしいです。ショートカットを変えたいだとか、中身を変えたいだとかいろいろ思うところがありますが、それが出来ないのです。 Xcode.app を掘っていけばきっとどこかにスニペットを収録した plist なりがあるのでしょうが、それを調べるのもたるいです。でもそれを GUI で簡単に編集できるアプリがありましたのでここに使い方をメモしておきます。 Snippet Edit http://cocoaholic.com/snippet_edit/ Snippet Edit を使うと、組み込みスニペットを編集する事が出来ます。一覧に表示されるのは組み込みスニペットだけで、ユーザ追加のものも含めて管理出来る訳ではないようです。 ここで編集済みのスニペットにはアイコン部分に User が付きます。 Snippet Edit だけ
突然ですが、iPhoneで雪を降らせてみましょう。 実装方針 多数の雪の結晶が上からゆっくり落ちてくるようなアニメーションを Core Animation で実装する。落下の最中、3軸それぞれを回転させるとヒラヒラと落ちる雪を演出できる。雪の画像を数種類用意し、各種パラメータを乱数で乱すと尚良い。 素材の用意 プログラムで扱いやすいように正方形のPNGを用意する。ファイル名には参照しやすいように番号を振る。 Illustratorで雪の結晶を描画、Photoshopで適切な大きさにして終わり。 Xcode 6であれば PDF にしても良いかもしれない。 実装 レイヤー生成メソッドの実装 CALayer#shouldRasterize でラスタライズ化するように指定。これにより描画が高速になる。 CALayer#rasterizationScale CALayer#contentsScale
Xcode の便利プラグインまとめ はじめに Xcode 8 からのいわゆる Xcode Source Editor Extension ではなく、あくまで非公式のプラグインを掲載します。 インストール先は ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ Alcatraz などのパッケージマネージャを使うと管理が楽 Xcode の更新でプラグインが使えなくなる事もあるので注意 "DVTPlugInCompatibilityUUID" を追記する事で対応出来る場合もある(後述) 管理 Alcatraz Xcode プラグインや Color Scheme などを管理するパッケージマネージャ。これを入れておけばこの記事を見なくてもだいたいのプラグインは参照できます。 メニューバー > Window > Package
NSOperationQueue に addOperation: すると EXC_BAD_ACCESS になる現象とその回避策の模索Objective-CMacOSXiOS NSOperationQueue の addOperation: 実行時に EXC_BAD_ACCESS が発生する現象。しかも NSZombie を有効にするとクラッシュせず普通に動いているように見えてしまう。NSZombie を使い続けていたら発見できなかった現象なので、NSZombie を外しての確認も必須かもしれない。 実装条件など NSOperation のサブクラスを自前で実装 並列実行モード -isConcurrent == YES -cancel 対応 だめだった回避策 addOperation: の実行前に、在オペレーション数が maxConcurrentOperationCount を超過しないよう
インストール ~/Library/ColorPickers/ に .colorPicker を放り込んでアプリを再起動。 標準カラーピッカーにタブが増える。 ANTETYPE Color Picker ANTETYPE Color Picker Photoshop 風。 HSB, RGB, 16進数で指定可能。 Developer Color Picker] Developer Color Picker Panic 謹製。 NSColor / UIColor の Objective-C コード、CGColor の C コードで出力可能。 ColorNamePicker ColorNamePicker RGB, 16進数、色名で指定可能。 Register as a new user and use Qiita more conveniently You get articles that
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く