iPhoneでUILabelの高さ(height)を計算する方法


 

iPhoneでUILabelに表示させる文字量によって高さが変わる場合があると思います。

そんな時に動的に高さ(height)を知る方法をまとめました。

方法は2つ、

  1. 文字の内容UILabelのをして計算して高さを算出する方法
  2. UILabelに文字を設定してから、sizeToFitメソッドを呼び出して自動で高さを設定する方法

になります。

具体的にどうするのか見ていきましょう

1.文字の内容とUILabelのをして計算して高さを算出する方法

実際に計算する処理が以下になります。

    CGSize size = [label.text
                   sizeWithFont:label.font
                   constrainedToSize:CGSizeMake(width, 5000)
                   lineBreakMode:label.lineBreakMode];

sizeWithFont:constrainedToSize:lineBreakMode」を使用して計算します。

使用フォント、幅、改行モードを設定して自動計算してくれるメソッドが用意されてんるなんて便利ですね。

この時の注意点は、第2引数のSizeの高さをある程度大きな値を設定する事です。

そうすると、正しい値が戻ってくるので、正しい値で対象のUILabelの高さを設定します。

2.UILabelに文字を設定してから、sizeToFitメソッドを呼び出して自動で高さを設定する方法

次に自動的にUILabelの高さを決定してもらう方法です。

まず、ソースは

    [label setLineBreakMode:UILineBreakModeWordWrap];
    [label setNumberOfLines:0];
    CGRect frame = [label frame];
    frame.size = CGSizeMake(width, 5000);
    [label setFrame:frame];
    [label sizeToFit];

このメソッドでも、同じようにフォント、幅、改行モードを設定してから「sizeToFit」メソッドを呼ぶことで

自動的に高さが設定されます。

この時の注意点は、対象のUILabelの高さをある程度高い値で設定します。

もう一つ、「setNumberOfLines」には、「を設定しておいて下さい。

これを忘れると改行されなくなりますので注意してください。

 

このようにして計算出来た高さを使えば、対象のUILabelの正しい高さを設定できます。

iPhoneアプリのUITableViewの編集モードを使う場合の注意点


 

iPhoneアプリでTableViewを使用している場合、「編集モード」を使うとかなり便利にデータ削除が行える

UITableViewControllerを継承しているのならあまり問題ないかと思うのですが、

UIViewControllerで「UITableViewDelegate, UITableViewDataSource」を独自に実装してUITableViewを操作する場合注意が必要になります。

注意が必要と言っても1つだけ忘れないで置くことを覚えておくだけです。

「- (void)setEditing:(BOOL)editing animated:(BOOL)animated」

このメソッドの実装を忘れない事です。このメソッドを書かないで置くとEditボタンを押下しても、うんともすんともいいません。

さみしい状態になるので注意しましょう。

WordPressプラグイン Google Analytics for WordPress


 

プラグイン名 Google Analytics for WordPress
概要
WordPressに手軽にGoogle Analyticsを導入する為のプラグイン
ログイン時は、Analyticsのログに記録しないなどの設定が出来るので便利

使い方

  1. 設定から「Google Analytics」を選択する
  2. UAのコードを入力する
  3. カスタム変数を取得したい場合は、「Custom Variables Settings」を設定する
  4. Advanced Settings」を設定する事で便利な機能を設定できる。

便利な機能

ログインユーザーのアクセスログをカスタム変数でカウントしたり、PVにそもそもカウントしない事もできます。

カスタム変数に記録するには

Custom Variables Settings」の「Logged in Users」にチェックを付けます。

Analyticsに残さないようにするには

Advanced Settings」の「Ignore users」を選択すればOKです。

Subscriber」を選択しておくと全てのログインユーザーが記録されないようになります

私は、管理者でしかログインしていないので「Administorator」に設定して、管理者ログインユーザーを記録しないように設定しています。

iOSアプリケーションの共通に使用されるディレクトリ


 

iOSアプリケーションを開発するときに使用するディレクトリ構成の備忘録

ディレクトリ 概要
<Application_Home>/AppName .app
アプリケーションを含むバンドルディレクトリ。
このディレクトリ内にプログラムから書き換えを行うとアプリが起動できなくなります。
iTunesでバックアップされない
<Application_Home>/Documents/
アプリケーション内でデータファイルを書きだすディレクトリ。
iTunesでバックアップされる
<Application_Home>/Documents/Inbox
外部エンティティからアプリケーションに対して要求されたファイルのアクセスに使用する。
iTunesでバックアップされる

<Application_Home>/Library/

アプリケーションのデータファイル以外のファイル用の最上位ディレクトリ。
iTunesでバックアップされる
<Application_Home>/tmp/
アプリケーションを次に起動するまで保持する必要のない一時ファイルを書き込むディレクトリ。
iTunesでバックアップされる

これを押さえておかないとファイルをリソースフォルダ内に出力してしまったりするので注意しましょう

WordPressプラグイン Akismet


 

プラグイン名 Akismet
概要 WordPressに最初からインストールされている、スパム対策用プラグイン

最初から入っていてスパム対策には凄い威力を発揮するプラグインなので設定しておきましょう。

設定方法

  1. WordPressのダッシュボードから「プラグイン」→「Akismet設定」を選択する
  2. 「Akismet API キー」が未入力の場合、取得する為に「Akismetのページ」へ行く( What is this?のリンクから遷移します)
  3. 「Get an Akismet API key」を押下します。
  4. 個人的なブログなので「Personal」を押下します
  5. こちらに必要事項入力します。お金も気持ちがあればいくらでも構わないと思うので入力してみてはいかかでしょう。
  6. 入力が完了するとメールでAPIキーが送信されてきます。
  7. WordPressのダッシュボードから送信されてきたAPIキーを設定し、「設定を更新ボタン」を押下します。
  8. 「設定を保存しました。」と表示されれば完了です。

これで設定完了です。自動的にコメントスパムはスパムとして設定されます。

スパム判定されなかったものも「スパム」として後から学習させることが出来るので、有効に活用して行きたいです。

return top