プログラミングと音楽とアニメとiPhoneとiPadとMacとAndroidとLogicとギターとテニスと車

アプリ開発系の勉強メモやTipsなどを中心に他いろいろと書いていきます。

Androidのアクションバー向けアイコン画像パッケージ「Action Bar Icon Pack」が簡単便利!

Action Bar Icon Pack

http://developer.android.com/design/downloads/index.html#action-bar-icon-pack

f:id:travitu:20140520012814j:plain

AndroidデベロッパーサイトでダウンロードできるAndroid用のアイコン画像のパッケージです。イラレ(.ai)データやPNGファイルが入っています。今まで使う機会がなかったのですが、解像度ごとにフォルダ分けもされていて便利に使えそうです。

f:id:travitu:20140520015756j:plain

Failed to load properties file for project 'プロジェクト名'の対策

EclipseAndroidアプリの開発中にFailed to load properties file for project 'プロジェクト名' というエラーが出た場合の対策方法をメモ。

f:id:travitu:20140514213748j:plain

 /Users/username/.android を削除(debug.keystoreとかがあるディレクトリですね。)

ProjectをCleanしてからRunしたらエラーが消えました。

 

 

 

 

UIBarButtonItem に設定したボタン画像を切り替えて状態を維持する方法

ナビゲーションバーにオリジナルのボタン画像を配置して、そのボタンをタップしたら画像を別画像に切り替えたい場合に使えると思います。 

検証環境:iOS 7のiPhone4siPhone5s

実装例

viewDidLoad とかで以下のように UIBarButtonItem を設定します。 

    UIButton *imgBt = [UIButton buttonWithType:UIButtonTypeCustom];

    imgBt.frame = CGRectMake(0, 0, 44.0f, 44.0f);

    [imgBt addTarget:self 

         action:@selector(btAction:)        forControlEvents:UIControlEventTouchUpInside];

    [imgBt setImage:[UIImage imageNamed:@"bt_image_normal"] 

             forState:UIControlStateNormal];

    [imgBt setImage:[UIImage imageNamed:@"bt_image_selected"] 

             forState:UIControlStateSelected];

    UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithCustomView:imgBt];

    self.navigationItem.rightBarButtonItem = barItem;

 

 - (void)btAction:(id)sender

 {

  UIButton *bt = (UIButton*)sender;

  if (bt.selected){

   bt.selected = NO;

  }else

   bt.selected = YES;

 }

  

 ポイントは、UIButtonのsetImage:forState:でUIControlStateSelectedを指定することです。UIControlStateHighlightedではタップして指を離すとUIControlStateNormalで指定した画像に直ぐに戻ってしまいます。他にもやり方があるかもしれませんが、自分的にはこの方法が一番簡単だと思います。

コインスペース 東急プラザ渋谷店が超快適!

前から気になっていたコインスペースを利用してみました。

東急プラザ渋谷の1F/2Fにあり渋谷駅からアクセスもよい。

フリードリンク

wifi有り(特に契約など不要)

空調有り

利用料:12分100円、最大1000円

【2014/6/5追記】

※ 2014年6月1日から利用料が最大1500円になっていました。

2F喫煙スペース有り

食べ物持ち込みOK

会議室有り

営業時間:9:00〜22:00

http://coinspace.jp

 

再入場はできないそうなので、長時間居る予定の場合は何か食べ物を買ってから行った方がよさそうです。

平日の正午頃に行きましたが、かなり空いていました。

オススメです。

 

UIViewControllerでUIRefreshControlを使う方法

UIRefreshControl はテーブルビューで引っ張ってセルのデータを更新するときに使えるiOS標準の機能です。

UITableViewControllerでrefreshControlプロパティに設定しても使えますが、今回はUIViewController内でUITableViewを表示する構成でのUIRefreshControlの実装方法をメモ。

利用条件:iOS6以上

実装例

変数を宣言

@property (nonatomic, strong) UIRefreshControl *refreshControl;

 

viewDidLoadでUIRefreshControlのインスタンスを生成し、

UIViewControllerに追加したUITableViewのインスタンスにaddSubviewします。

    _refreshControl = [[UIRefreshControl alloc] init];

    [_refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];

    [self.myTableView addSubview:_refreshControl];

 

- (void)refresh:(id) sender

{    

    // 更新開始

    [sender beginRefreshing];

}

 

更新を停止したいタイミングで以下を実行します。

[_refreshControl endRefreshing];

 

 

オーガナイザでアプリをアップロードする時に出たエラーの対処

アプリが完成していざ申請のためアプリをアップロードしようとしたら、

よく分からないエラーが出ることが多々あります。

今回は以下のエラーが出ました。

 

エラーメッセージ

There was a general exception while executing

An exception has occurred: null

f:id:travitu:20140506144939j:plain

このエラーメッセージからは原因がわからないため、色々と検索して調べましたが

有力な情報が出てきません。

 

全く原因が分からず困りましたが、もしやと思い再度Distributeしてみると、、、

アップロードが完了するまでちょっと時間(数分)がかかりましたが、無事にアップロードできました。

 

CocoaPodsのエラー対処

$ pod install でライブラリを追加しようとしたら下記エラーが出て追加できなかったので対処方法をメモ。

[!] The `master` repo requires CocoaPods 0.32.1 -

 

このエラー内容をみる限り、CocoaPodsのバージョンが古いみたいなので、現在のバージョンを確認。

 

$ pod --version

0.29.0

 

確かにバージョンが古かったので、迷わずバージョンアップを実行。

$ sudo gem update --system

$ sudo gem update cocoapods

 

バージョンアップ完了後、念のため現在のバージョンを確認。

$ pod --version

0.32.1

 

バージョンアップ成功。

その後、ライブラリも無事に追加できました。