.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.19 2012

ローカライズ言語を追加するときの落とし穴

はい、新年度はじまりました。
いろいろあった昨年度でしたが、みなさまいかがお過ごしでしょうか?

はい、UTOです。
4月からこのブログ担当順番が一新しましたが、
私は相変わらずの一番です。

さて、結構前に陥ったミスの内容を話したいと思います。
.16 2011

UIKitのアニメーション絡みが痒いです

どうもHAYABUSAです。

久々の投稿ですが、TableView絡みでずっと悩んでた謎がなんとなく解明されてきた感があります。

ざっくりと悩んでた内容は、
「UITableViewをアニメーションありで編集モードを切り替える際、reloadDataを呼ぶとアニメーションがキャンセルされる」
という謎です。(performSelectorディレイでreloadDataなんて付け焼き刃なことはしません(^^;)
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
のanimatedをYESで編集モードに移行するパターンですね。

例えばTableViewのセル内にUISwitchとか配置してカスタムしたいときってありますよね?
んで編集モードがONかOFFかでそれらのコントロールを表示/非表示させたいときもあると思います。
そういったとき今までは、UITableViewのデリゲートメソッド
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
内で直接セルにUISwitchを配置したり、Editモードか否かでの表示ON/OFFとかの制御をすべてやっちゃってたんです。
でもそうしちゃうと、このデリゲートメソッドがコールバックされる=reloadDataをコールしないと制御できなくなるんですよね…

調査した結果どうやら、
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
メソッドは、
1) UIViewController
2) UITableView
3) UITableViewCell
の3クラスに用意されていて、それぞれ上記の順番でコールされるようです。
とくにUITableViewControllerでビューコントローラを作ってる場合なんかは知っておくと便利かもです。

なので今回のケースとしては、
3) UITableViewCell
のサブクラスを作り、オーバーライドしたsetEditingメソッド内で編集モード状態でのコントロール制御をやってあげることで解決しました。
コントロールの表示/非表示はもちろん、アニメーションも思うがままなので、編集モードになったらUISwitchがスライドしながら消える、といったようなアニメーションもできちゃいます。
わざわざセルをサブクラス化するのが面倒だったために遠回りしちゃってたんですね…orz

テーブルの最下行に新規追加用セルを入れたいときなんかも、面倒でもビューコントローラのsetEditing内で、insertRows/deleteRowsをやってあげるのが正解です。

最後に、今辿り着いた答えとしては、「編集モードを切り替える際にreloadDataをしないといけないような処理/制御はやっちゃいけない(!?)」
…現状はまだ、!?の段階ですが、今後も実装しながらいい具合のコーディングスタイルを確立していこうと思います。

しかしTableView…癖が強い(;´Д`
.18 2011

iTuneパスワード入力するときのUIAlertViewを表示したい

iPhoneでApp StoreからアプリをDLする際、
パスワードを入力しますよね。

あの画面ってUIAlertViewにUITextViewがのっている状態なのですが、
UIAlertViewに他のUIViewをaddSubviewするって結構位置合わせがめんどくさかったりします。


しかしiOS5.0~という条件ではありますが、簡単に実装する方法がありました。

あ、変わったTシャツ集めが大好きなUTOです。

.06 2011

UITableViewがUITableViewStyleGrouped時の背景の色を変更したい

どうも、アメダス
いえいえ、UTOです。

早いところでは梅雨明け宣言がでましたが、
まだまだ私の周りでは梅雨っております。

昨日晴れたと思えば朝起きたら大雨
窓を閉めていないと窓際が大惨事なことに…気をつけましょう

そんなジメジメした空気に悩んだことをメモっておきます。

UITableViewをUITableViewStyleGroupedにしたときのお話
.24 2011

YouTubeの動画を再生したい

お初です。
UTOと申します。

元ゲーム開発会社に所属していました。
個人でゲームをつくることもあります。

今はiOSの開発をメインでさせていただいております。

最近、テレビのCMで映画やゲームの告知を見るよりも、
インターネット上の動画で知る機会が多くなりました。

テレビを見るよりも携帯やPCでインターネットをしている時間が多いだけですけど(キリッ

iPhoneアプリにて、YouTube動画を再生したいっという機会があるとおもうのですが、
その方法をまとめてみました。



 HOME 

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。