GradientButtons

グラデーションボタンを簡単実装。
ActionSheetのボタン風など、簡単にデザイン可能。
定義済みのボタンデザインが、なかなか秀逸。既存のボタン(UIButton)との簡単な差し替えも出来ます。
Google Code Archive - Long-term storage for Google Code Project Hosting.

Three20

facebook謹製のUIPack集。
なかなか癖の多いライブラリ群ですが、
画像キャッシュ機能を備えたTTimageViewとか、アプリ内ブラウザ実装のWebViewControllerあたりは頻繁に利用します。
GitHub - facebookarchive/three20: Three20 is an Objective-C library for iPhone developers

UIColor-Expanded

結構、今更感のあるおなじみのライブラリ群になりますが、iPhoneのUIにおいて使えるライブラリ群。
まだまだ使い勝手は結構あります。

UIColor-Expanded
HTMLカラーコード、文字列などで、Color指定できる。
Google Code Archive - Long-term storage for Google Code Project Hosting.

NSHTTPCookieStorageの指定ドメインのCookie削除について

NSHTTPCookie Storageのcookie削除についてハマった件について。
まず、NSHTTPCookieStorageのCookieがOSでシェアしているとの情報を見かけますが、Cookieが処理されるのは、指定アプリ内だけですね。
さて、NSHTTPCookieStorageのcookiesForURLでは、指定ドメインのセッションCookieが取得できません。セッションCookieを取得するには、.をドメインの前に付与する必要があり、
これは、全取得を行って、下のようなやり方でとりあえず対処できました。


About to delete NSHTTPCookie by specified domain.

At first I used [NSHTTPCookieCtorage cookiesForURL:domain] to delete specified cookie.
but session cookie doesn't match and cannot delete.
It has to push '.' before specified domain to get session cookie.
This way is able to delete both normal and usual cookie by domain.

    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for(NSHTTPCookie *cookie in [storage cookies]){
        NSDictionary *cookieProperty = [cookie properties];
        
        if([[cookieProperty objectForKey:NSHTTPCookieDomain] isEqualToString:@"twitter.com"] ||
           [[cookieProperty objectForKey:NSHTTPCookieDomain] isEqualToString:@".twitter.com"] ){
            [storage deleteCookie:cookie];
        }
    }

UIViewController とUITableViewControllerを両方継承したい場合

例えばUIViewControllerとUITableViewControllerに対して共通の処理を実装したい場合には、どうすれば良いかという話。

まず、ObjectiveCは多重継承を許していません。
本来であれば、TableViewのviewForHeaderとかviewForFooterを巧く使えればベストですが、
UITableViewControllerを使用するのを止めて、UIViewController+UITableViewの構成にし、tableView自体をproperyで持つ事でクリアできるかと思います。

言ってみれば、疑似UITableViewControllerですね。
この場合、UIViewDidScrollなどのUIScrollViewのDelegateメソッドも取得できないので、その辺も要注意。
(プルダウン更新を実装する時とか、問題が残ります。ex EGORefreshTableHeaderView)


How do I add same logic on UITableViewController And UIViewController?

Then Objective-c doesn't allow multi inheritance.
Of course we want to avoid double maintenance.
So It is best way is using only UITableViewcontroller's tableheaderview and tablefooterview. But that way isn't suitable in some situation.

So I made the inheritance of UIViewController that has tableview propery.
This way is avaiable to access self.tableView.

But in this case some problems remain that cannnot catch UIViewScroll's delegate message.
for example this way doesn't work binding EGORefreshTableHeaderView.