忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

autoresizingMaskのviewサイズは固定

わか

autoresizingMaskを使用すると回転時のviewのサイズを自動で適切なサイズに変換してくれます。

iPhone5  iOS7.1.1 
autoresizingMaskを設定しているUITableViewのframeサイズを、生成される際の回転位置から生成していました。( Portrait(縦持ち)(320,568)、Landscape(横持ち) (568,320) )
するとLandscape時に画面は真っ黒になりました。
なので、画面サイズを(320,568)に固定すると問題なく表示されました。

画面サイズの変更はautoresizingMaskがやるので、手動で変更してはいけないいうことでしょう。

拍手[0回]

PR

renderInContextのキャッシュをすぐに解放する方法

わか

ARC環境下にてlayerのrenderInContextを使用した後、すぐにキャッシュが解放されない問題が発生しました。しばらくすると解放されましたが、連続で使用した場合、解放される前にメモリ不足で落ちました。
あれこれ調べてみると、UIGraphicsEndImageContextの前にview.layer.contents = nil;を追加するとキャッシュがすぐに解放されるようです。
忘れがちになりそうなので、メモしておきます。

拍手[1回]


Allocationsの見捨てられたメモリについて

わか

instrumentsで見捨てられたメモリについて概要を記載します。

見捨てられたメモリ
メモリリークとは異なる。何らかの理由で確保されたが、使用されていない領域のこと。
実装を中断した中途半端なコードが残っている。データを重複して保存するような箇所がある。Allocationsにてある処理を繰り返して分析する技法「世代分析」して確認する。
Allocationsで検出可能

拍手[0回]


scrollsToTopが効かない場合の対応方法

わか

UIScrollviewにはscrollsToTopプロパティがあり、ステータスバーをタップすると一番上までスクロールする機能があります。デフォルトはYESです。
また、UIScrollviewは「UITableView、UIWebView、UICollectionView、UITextView」のsubviewsに含まれます。
今回、scrollsToTopがYESなのにステータスバーをタップしても一番上に移動しなかったので原因と対応方法を記載します。

拍手[0回]


Settings.bundleのローカライズ方法について

わか

XcodeのSupporting Files内にSettings.bundleを作成すれば、OSの設定アプリに設定項目を追加できます。ここにはアプリのバージョンや初期化設定を記載するのが一般的なようです。
一般的にはあまり使われていないような気もします。

ローカライズすることで多言語を表示できますが、すこし迷った部分があったので記載します。

拍手[0回]





searchBarSearchButtonClicked内ではUITextFieldを使用できない

わか

iOS 8.0
タイトル通りですが、UISearchBarのsearchBarSearchButtonClicked内ではUITextFieldを使用できないようです。
使用してもUITextFieldのdelegateが呼ばれない現象が発生します。

UITextFieldを使用する場合は、performSelector:withObject:afterDelay:を使用して、一旦searchBarSearchButtonClicked内の処理を終了させてから、使用すれば使用できました。

備忘録でした。

拍手[0回]