2014年3月31日月曜日

UISegmentedControlのカスタマイズ



UISegmentedControlは非常に便利なコントロールです。
画面上部に置いてライクな使用も出来るし、
ナビゲーションバー上に置いて、複数ボタンのように扱う事も出来ます。
本来の役割はラジオボタンに近いのですがね。

ただし、このカスタマイズ方法がかなり特殊なので、
今回はそれについてまとめたいと思います。
※Storyboardの使用を前提としています。

2014年3月26日水曜日

Cocos2dxでSpineでのボーンアニメーションが上手くいかない解決方法

Spine 1.8.18 で出力した png/json/atlas を使い、 Cocos2d-x 2.2.2 でボーンアニメーションしようとした時に、CCEGLView::sharedOpenGLView()->setDesignResolutionSize を使うとテクスチャアトラスがそのまま表示されてしまいます。

最新のSpineにCocos2dxに入っているSpine Runtimeが対応出来ていない可能性があるので、今回はSpine Runtimeを入れ替えてみます。

2014年3月24日月曜日

iOS7.1でUIProgressViewのカスタム画像が表示されなくなる

UIProgressViewにカスタム画像を適用させる場合、以下の通りにカスタム画像をセットしていたかと思います。

progressView.progressImage = [UIImage imageNamed:@"image"];
progressView.trackImage = [UIImage imageNamed:@"trackImage"];

ただし、上記の方法ではiOS7.1では画像が適用されません。
(バグレポートに挙がっているのでその内改善されるとは思いますが。)

よって、独自のコンポーネントを作って回避するしかないのですが、
既に対応して下さっているライブラリがあります。

JEProgressView

中身も非常にシンプルで、バージョンチェックをして、必要があれば、progressとtrackの両方のImageViewを用意して元のprogressViewのsubviewを上書きしているだけです。

クラスを変更するだけで対応が可能なので、利用させて頂きましょう。

JEProgressViewを利用する際の問題点としては、
セットする画像サイズを自動調整してくれない
という点でしょうか。

よって、セットする画像の幅、高さは、利用するprogressViewのサイズに合わせて利用しましょう。


Cocos2d-xをEclipseでビルドした際に発生するエラーを解決する方法

Xcode側で発生しないのにEclipse側では発生する問題がいくつかあります。その解決方法はズバリ表示させなくする事です。
以下のようにします。

  1. [Package Explorer]でビルド対象のプロジェクトを右クリック
  2. [Properties]を選択
  3. [C/C++ General] > [Code Analysis]を選択
  4. 上部のラジオボタンを[Use project settings]に変更
  5. 画面下部の[Problems]から以下の項目をチェックアウト
    Invalid arguments
    Abstract class cannot be instantiated

他にもエラーが発生すればどんどんチェックアウトすれば良いと思います。