amasok's blog

Archive for 2014

【iOS】上にスクロールした時だけバーを表示する

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]; }

これでできた。

webViewを継承しているclassでscrollViewのメソッドを使う時のメモ

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内のメソッドが使えるようになる。

【Objective-C】iOSで色指定(16進数)を簡単にする方法

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

どれも目から鱗の捗りようです。

【Objective-C】カスタムセル内の状態を永続化(保存)させたい

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: @"☓"] ? @"◯" : @"☓"; #NSUserDefaulscheckindexをキーとしてセット [checkDefaults setObject:check forKey:index]; #ボタン名にcheckをセット [_checkButton setTitle:check forState:UIControlStateNormal]; }

【Objective-C】文字列内に特定の文字列があったら削除する

2014/03/17 23:32 tags: Objective-C, このエントリーをはてなブックマークに追加

HTMLソースから特定のデータを削除する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// // 引数htmlSourceはHTMLソース // - (NSMutableString *)delete:(NSMutableString *)htmlSource { NSRange searchStart = [htmlSource rangeOfString:@"search_start"]; NSRange searchEnd = [htmlSource rangeOfString:@"serach_end"]; // searchStartとsearchEndが両方があった場合に処理する if (searchSocialStart.location != NSNotFound && searchSocialEnd.location != NSNotFound) { int deleteLocation = searchSocialStart.location; int deleteLength = searchSocialEnd.location-searchSocialStart.location+searchSocialEnd.length; // deleteLocationは削除する位置 // deleteLengthは削除する長さ [htmlSource deleteCharactersInRange:NSMakeRange(deleteLocation, deleteLength)]; } return htmlSource; }