UIViewのframeとboundsの違い

以下のサイトでまとめてくれていました。
http://blog.syuhari.jp/archives/2072

  • frame はスーパービューから見た座標
  • bounds はローカルのビューから見た座標

Viewが回転した場合でも、frameはサイズが変わりますが、
boundsのサイズは変わりません。

UIButtonに画像を設定する方法

Interface BuilderのButtonのTypeをCustomにする。

ViewDidLoadで以下を記述

UIImage image = [[UIImage imageNamed:@”btn”] stretchableImageWithLeftCapWidth:12 topCapHeight:12];

※上記の「stretchableImageWithLeftCapWidth: topCapHeight:」は、iOS5以降ではDeprecatedを使うそうです。
部長さん情報ありがとうございます。修正すると以下のようになります。

UIImage *image = [[UIImage imageNamed:@”btn”] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12)];
[self.btnSearch setBackgroundImage:image forState:UIControlStateNormal];

これでボタン用の画像がボタンサイズに合わなくてもうまくリサイズしてくれます。

UIImageViewやUILabelのtag(タグ)の付け方

UIImageViewでタッチイベントをとりたかったので、tagをつけることにしました。
ただタグをつけるだけでは、UIImageViewのタッチイベントが取れません。
「User Interaction Enabled」にチェックを入れる必要があります。
これでタッチイベントが取れるようになります。

- (void) touchesEnded:(NSSet *) touches withEvent: (UIEvent *) event
{
	UITouch * touch = [[event allTouches] anyObject];
	if (touch.view.tag ==self.imageView.tag) {
		NSLog(@"Tap.");
	}
}

ソースで書くと以下のようになります。

self.imageView.userInteractionEnabled = YES;
self.imageLogo.tag = 100;

参考サイト:

http://sbkro.hatenablog.jp/entry/2012/11/27/233945