2014/03/19 19:20 tags:
Objective-C,
iOS,
1.上にスクロールした時だけバーを表示する
2.下にスクロールした際はバーを非表示にする
3.一番下までスクロールした際のバウンス時はバーを非表示にする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//scrollしている間呼び出され続ける
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//scrollした位置を取得する
CGPoint currentPoint = [scrollView contentOffset];
//上にスクロールした場合にバー(_tabBar)を表示する
_tabBar.hidden = scrollBeginingPoint.y < currentPoint.y ? YES : NO;
//バウンスした際にhiddenが解除されてしまうので、
//scrollViewの一番下までスクロールした際にバーを削除する
//scrollView.bounds.size.height=画面サイズ
//scrollView.contentOffset.y=スクロールした位置
int viewSize = scrollView.bounds.size.height + scrollView.contentOffset.y;
//scrollView.contentSize.height=scrollView全体のサイズ
int contentSize = scrollView.contentSize.height;
if (viewSize >= contentSize) {
_tabBar.hidden = YES;
}
}
//scrollを開始した時点で一度だけ呼ばれる
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
//scrollを開始した値を取得する
scrollBeginingPoint = [scrollView contentOffset];
}
|
これでできた。
2014/03/18 05:26 tags:
Objective-C,
簡単なんだけど、最初よくわからなかったのでメモ
test.h
1 2 3 4 5 6 | //UIScrollViewDelegateをデリゲート?する。
@interface webtest : UIWebView <UIScrollViewDelegate>
@end
|
viewDidLoad内でsubScrollViewを許可。
test.m
1 2 3 4 5 6 7 8 9 |
- (void)viewDidLoad
{
[super viewDidLoad];
self.subScrollView.delegate = self;
}
|
これによってUIScrollViewDelegate内のメソッドが使えるようになる。
2014/03/18 05:02 tags:
Objective-C,
UIColorを16進数で色を指定する方法
http://dev.classmethod.jp/smartphone/ios-tips-2/
このサイトがすごい。
UIColorを16進数で指定できるようにカテゴリ拡張している。
単純だけど、初心者の僕には
「あ、カテゴリってこうやって使うんだ」
って勉強になった。
ストーリーボードでの色を16進数で指定する方法
また、xcodeのストーリーボードも通常では16真数での色してはできません。
そこで下記URL.
http://wafflesoftware.net/hexpicker/
やり方は下記。
http://paranishian.hateblo.jp/entry/xcode/hexcolor
どれも目から鱗の捗りようです。
2014/03/18 00:18 tags:
Objective-C,
以下のやり方でできました。 永続化させるためにNSUserDefaultを使用する。
カスタムセル用クラスcell.mにて セル毎にユニークなIDを取得できるようsetterを作成する。
ユニークな文字列は自分で生成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// #indexPath=セル毎に割り振られたユニークな文字列
- (void)setIndex:(NSString *)indexPath{
//indexPathをインスタンス変数化
index = indexPath;
//NSUserDefaultsを生成
NSUserDefaults *checkDefaults = [NSUserDefaults standardUserDefaults];
//NSUserDefaultからindexをキーに値を取得する
NSString *check = [checkDefaults stringForKey:index];
if (check != NULL){//値があればその値をボタンにセット
[_checkButton setTitle:check forState:UIControlStateNormal];
}else{//値がなければデフォルトの◯をセット&◯をindexをキーとしてセット
[_checkButton setTitle:@"◯" forState:UIControlStateNormal];
[checkDefaults setObject:@"◯" forKey:index];
}
}
//ボタンをタップした時の処理
- (IBAction)checkAction:(id)sender
{
#NSUserDefaultsを生成
NSUserDefaults *checkDefaults = [NSUserDefaults standardUserDefaults];
#ボタンにセットされている文字列ば☓なら◯を、◯なら☓の文字列を変数checkに取得。
NSString *check = [_checkButton.titleLabel.text isEqual: @"☓"] ? @"◯" : @"☓";
#NSUserDefaulsでcheckをindexをキーとしてセット
[checkDefaults setObject:check forKey:index];
#ボタン名にcheckをセット
[_checkButton setTitle:check forState:UIControlStateNormal];
}
|