UIButton内テキスト位置を微調整する

まぁ、これはUIView関連。
UIButtonだけでなく、UILabelのテキストなど色んな面で応用が効きます。
UIButtonの場合はタイトルラベル用に専用のインタフェースが準備されてます。


マージンを設定するためには、UIEdgeInsetsを利用します。


UIEdgeInsetsはマージンを表す構造体で、以下のようなパラメータを持っています。
CGRectとは各パラメータの順番が違うので注意してください。

typedef struct UIEdgeInsets {
    CGFloat top, left, bottom, right;
} UIEdgeInsets;


例えばUIButtonの場合は、以下のように利用することでマージンを調整できます。
デザイナーさんから送られてきた画像が、余白に影がある関係でそのままテキストを
設定したら文字が中心からずれてしまうときなどに利用してます。

[button setTitleEdgeInsets:UIEdgeInsetsMake(6, 0, 0, 0)];
※buttonはUIButton型の変数。UIButtonTypeCustom


これはUIViewなどにも設定可能で、その方法に関する詳しい手順は
以下のサイトを参考にしてください。
frameとしてUIEdgeInsetsInsetRectを設定する形になります。
http://runlooprun.wordpress.com/2011/02/20/uiedgeinsets/