2014年3月8日土曜日

UIRefreshControl を使って引っぱり更新をする。

iOS6で追加された引っぱり更新用のUIRefreshControlですが、先日私事でiOS5の呪縛から逃れたのでメモメモ。

※ちなみにiOSの6と7ではUIのビジュアルが違いますが、個人的にはiOS6の方が好きですが、手元に環境がないのでこの例はiOS7です。

UITableViewControllerにrefreshControlのプロパティがあるので、画面の初期化の時に設定。
UIControlEventValueChangedでイベントが取得出来るので、その設定も忘れずに。

// リフレッシュコントロール
[self setRefreshControl:[[UIRefreshControl alloc] init]];
[[self refreshControl] addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];

イベントの受け取りメソッドも定義。


- (void)refresh:(UIRefreshControl *)control
{
    // 回転開始
    [[self refreshControl] beginRefreshing];
    
    //
    // 処理
    //
    
    // 回転終了
    [[self refreshControl] endRefreshing];
}

「beginRefreshing」と「endRefreshing」でインジケーターの回転のタイミングを調節できるので、これでやりたい処理を挟みます。


こんな感じ。

2014年3月7日金曜日

segmentedControlStyle でワーニングが出る

[[self _segmentedControl] setSegmentedControlStyle:UISegmentedControlStyleBar]; 
こんな指定をしているとiOS7から以下の様なワーニングが表示されます。
'UISegmentedControlStyleBar' is deprecated: first deprecated in iOS 7.0 - The segmentedControlStyle property no longer has any effect
ワーニング内容からもわかるように、 segmentedControlStyleにはもう何の効果も無いようです。

廃止されてしまいました。

代替のプロパティも無いようです。

iOS7専用アプリの場合は、指定を消してしまってかまわないようです。

2014年3月6日木曜日

XcodeでMissing fileというワーニングが出る

こんなやつです。

これはバージョン管理システムとの不整合で発生するのですが、
なんとも気持ちが悪い。

実際に、このワーニングが出たまま、アプリをAppStoreに申請しちゃってもなんの問題もないし、エラーの原因になる事も無いのですが、ワーニングが出ているだけで精神衛生上よくない。(私は)

なので、消します。

まず、ワーニングをクリックするとコピー出来ます。
これをコピーすると以下の様な文字列がとれます。
file:///Users/take/Desktop/Workspace/プロジェクト名/TableSummaryView.m: warning: Missing file: /Users/take/Desktop/Workspace/プロジェクト名/TableSummaryView.m is missing from working copy
これの前半の
file:///Users/take/Desktop/Workspace/プロジェクト名/TableSummaryView.m
の部分が必要になります。

この文字列の前にsvn rm をつけます。
あとfile://をとります。
svn rm /Users/take/Desktop/Workspace/プロジェクト名/TableSummaryView.m
これをターミナルに貼付けて実行!


これでok

ちょっと伏せ字が多くてすいません。