独自のポップアップ表示が簡単に実装できるライブラリを公開しました。
TRACustomWindow
https://github.com/travitu/TRACustomWindow
【作った理由】
既に同じようなライブラリはありましたが、以下の条件をよい感じに満たしてくれるものが見当たらなかったので作りました。
- 画面のどこをタッチしてもポップアップが消えるようにしたい
- ポップアップのアニメーションがiOS標準の動きになるべく近いものにしたい
- 画像やボタンを簡単にカスタマイズできるようにしたい
【使い方】
ライブラリをダウンロードして、以下の4つのファイルを含んだ TRACustomWindow フォルダごとプロジェクトに追加します。
- TRACustomBaseView.h
- TRACustomBaseView.m
- TRACustomUIWindow.h
- TRACustomUIWindow.m
使いたいViewControllerのヘッダーファイルに
#import "TRACustomUIWindow.h" と TRACustomUIWindowDelegate を追加します。
ポップアップを表示したい箇所で以下のメソッドを呼び出します。
[[TRACustomUIWindow sharedInstance] showWindow]; [[TRACustomUIWindow sharedInstance] setDelegate:self];
画面のタッチでポップアップを消したくない場合は、ポップアップ表示の時に以下のメソッドを追加します。
[[TRACustomUIWindow sharedInstance] setEnableBaseViewTouch:NO];
ボタンのタップでポップアップを消したい時は以下のメソッドを呼び出します。
[[TRACustomUIWindow sharedInstance] hideWindow];
デモのプロジェクトも一緒に見てもらえれば簡単に導入できると思います。
https://github.com/travitu/TRACustomWindow
待望の頭文字D 最終話Final Stageが放送始まっていた!そして、、、
今日テレビを見てたらあのイニシャルDのCMが流れてきました。最終話のアニメ化はいつなのかと思いながら1年くらい経っていて忘れていましたが、ついに放送が始まってDVD発売と映画も公開されるみたいで、楽しみが1つ増えました。
最終話Final Stageの放送スケジュール
http://www.animax.co.jp/special/initial-d/
そのDVD発売
http://www.amazon.co.jp/頭文字-イニシャル-Final-Stage-Vol-1/dp/B00ITKL19M
新劇場版公式サイト
ちなみにFinal Stageのオープニングとエンディングの曲はこれみたいです。
https://www.youtube.com/watch?v=BTm6hNZnQKI
UIBarButtonItem に設定したボタン画像を切り替えて状態を維持する方法
ナビゲーションバーにオリジナルのボタン画像を配置して、そのボタンをタップしたら画像を別画像に切り替えたい場合に使えると思います。
実装例
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
再入場はできないそうなので、長時間居る予定の場合は何か食べ物を買ってから行った方がよさそうです。
平日の正午頃に行きましたが、かなり空いていました。
オススメです。
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];