ラベル ボタン の投稿を表示しています。 すべての投稿を表示
ラベル ボタン の投稿を表示しています。 すべての投稿を表示

2010年4月30日金曜日

UIControllEvent(Button)

UIControlクラス及びその派生クラスでは、ボタン等が押されたときのアクションとしてEventが定義(UIControlEvent定数)があります。ベースとなるクラスがUIControl(及びその派生クラス)の場合、これを(IBAction)で示したメソッドと結びつけることでトリガーとして受け取ることができるようです。

UIControlEventTouchDown
コントロール内でタッチした瞬間(touch-down)をイベントとして取得する

UIControlEventTouchDownRepeat
コントロール内でタッチを繰り返した場合: UITouch tapCount 目そっとで回数を指定する。

UIControlEventTouchDragInside
コントロール内でドラッグされた場合のイベント

UIControlEventTouchDragOutside
コントロール外でドラッグされた場合のイベント

UIControlEventTouchDragEnter
コントロールの外から中へドラッグされた場合のイベント

UIControlEventTouchDragExit
コントロルの中から外へドラッグされた場合のイベント

UIControlEventTouchUpInside
コントロール内でタッチアップした場合のイベント

UIControlEventTouchUpOutside
コントロール外でタッチアップした場合のイベント

UIControlEventTouchCancel
現在のタッチをキャンセルするシステムイベント

UIControlEventValueChanged
異なる種類の値を出力するため、ドラッグやその他のコントロールの操作

UIControlEventEditingDidBegin
UITextField オブジェクトに入るため、編集セッションを初期化するタッチ

UIControlEventEditingChanged
UITextFieldオブジェクト内の編集を変更するタッチ

UIControlEventEditingDidEnd
UITextField のオブジェクトを離れるために、編集セッションを終了するタッチ

UIControlEventEditingDidEndOnExit
UITextField オブジェクトの編集セッションを終了するタッチ

UIControlEventAllTouchEvents
全てのタッチイベント

UIControlEventAllEditingEvents
UITextField オブジェクトのための編集タッチの全て

UIControlEventApplicationReserved
アプリケーションが使用が可能なコントロールイベントの値の範囲

UIControlEventSystemReserved
インターナショナルフレームワークで使用のための予約されたコントロールイベントの値の範囲

UIControlEventAllEvents
システムイベントを含む全てのイベント

押されたボタンを識別する。

押されたボタンを識別する方法としては、ボタンのタイトル(Title)を確認する方法があります。
また、ボタンのタグ(Tag)を使う方法があります。

タイトルの場合言語に依存しますが、Tagを使う場合は言語に依存せず識別することができます。

以下はTitleの場合です。

@interface ViewController : UIViewController
-(IBAction) buttonPressed:(id)button
@end

@imprementation ViewController
-(IBAction) buttonPressed:(id)button{
  NSSting *button_name = [ button titleForState:UIControlStateNormal];
  // *button_nameにボタンのタイトルが入っているのでこれで識別する。
}

UIButton (ボタンクラス概要)

UIButton機能区分とメソッドには以下があります。

詳細はUIButton Class Referenceまで
ボタンクラスの生成

ボタンのイメージ設定




– setImage:forState:
ボタンの余白設定
  contentEdgeInsets  property
  titleEdgeInsets  property
  imageEdgeInsets  property
現在の状態の取得
  currentTitle  property
  currentTitleColor  property
  currentTitleShadowColor  property
  currentImage  property
  currentBackgroundImage  property
  imageView  property

ボタンの寸法の取得

ーーーー UIControlState定数 ーーーーーーーー
UIControlStateNormal
通常のデフォルトのコントロール状態。使用可能な状態ですが、選択/ハイライトはされていない。

UIControlStateHighlighted
ハイライトされた状態。コントロールは、タッチ入力時とタッチ状態から出た時、トラッキング状態から出た時、タッチアップされた時にこの状態に入る。highlighted プロパティを通じ、この値を取得し、セットすることができる。

UIControlStateDisabled
コントロール状態を無効にする。 現在コントロールが利用不可となっていることを示す。enabled プロパティを通じ、この値を取得し、セットすることができる。

UIControlStateSelected
コントロール状態を選択する。 多くのコントロールではこの状態は振る舞いや見え方を変更しないが、UISwitchControl等のサブクラスに影響を及ぼす。selectedプロパティを通じ、この値を取得し、セットすることができる。

UIControlStateApplication
アプリケーションが使用することができる追加のコントロール状態のフラグ

UIControlStateReserved
内部のフレームワークが使用するための予約されたコントロール状態のフラグ

----------------- sample code -----------------

-(void)viewDidLoad{
UIImage *buttonImageNormal = [UIImage imageNamed:@"whiteButton.png"];
UIImage *stretchableButtonImageNormal = [buttonImageNormal
strectchableImageWithLeftCapWidth:12 topCapHeitht:0];
[doSomethingButton setBackgroundImage:stretchableButtonImageNormal forState:UIControlStateNormal];
UIImage *buttonImagePressed = [UIImage imageNamed:@"blueButton.png"];
UIImage *stretchableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0];
[doSomethingButton setBackgroundImage:strectchableImagePressed forState:UIControlStateHighlighted];
}
---------------------------------