Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2011.03.29 Tuesday
[iOS SDK]複数ボタンを配置する
 

[]複数ボタンを配置する


ボタンに限らず、複数の同じパーツを設置する場合によく使うのでメモ。

もっとこうした方がよいよみたいなことがあればつっこみお願いします。


まずはNSMutableArrayを用意します。

@interface MyView : UIView {
  NSMutableArray *buttons;
}
@property (nonatomic, retain) NSMutableArray *buttons;
- (void)buttonClicked:(id)sender;
@end

UIButtonを作成するタイミングでNSMutableArrayに追加しておきます。

クリックされた場合の判定に利用するのでtagも設定します。

@implementation MyView
@synthesize buttons;

- (id)initWithFrame:(CGRect)frame {
  if (self = [super initWithFrame:frame]) {
    buttons = [[NSMutableArray alloc] initWithCapacity:0];
    for(int i=0; i<10; i++){
      UIButton *tmp = [UIButton buttonWithType:UIButtonTypeRoundedRect];
      [tmp setTitle:[NSString stringWithFormat:@"%i",i] forState:UIControlStateNormal];
      [tmp addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
      tmp.frame = CGRectMake(110, 20+i*35, 100, 30);
      tmp.tag = i;
      [self addSubview:tmp];        
      [buttons addObject:tmp];
    }    
  }
  return self;
}

ボタンがクリックされたら(id)senderから該当ボタンのタグを取得します。

(@selector()で引数を渡す方法が分からない..)


設置済みのボタンを参照する場合は、NSMutableArrayから取り出して利用します。

ここではクリックされたボタン以外を画面外にランダムな角度を付けて落下させてます。

- (void)buttonClicked:(id)sender{
  
  srand(time(nil));

  UIButton *b = (UIButton *)sender;
  int targetId = b.tag;

  CGContextRef context = UIGraphicsGetCurrentContext();
  [UIView beginAnimations:nil context:context];
  [UIView setAnimationDuration:0.5];
    
  for(int i=0; i<10; i++){
    if(i == targetId) continue;

    UIButton *tmp = (UIButton *)[buttons objectAtIndex:i];
    CGRect rect = tmp.frame;
    rect.origin.y = 600;
    tmp.frame = rect;
    
    int rnd = rand() % 60;
    if((rand() % 2) == 1){
      rnd *= -1;
    }
    [tmp setTransform:CGAffineTransformMakeRotation(rnd * (M_PI/180.0))];    
  }
  [UIView commitAnimations];
}

- (void)drawRect:(CGRect)rect {
}

- (void)dealloc {
  [buttons release];
  [super dealloc];
}
@end
| whaison | IosAppDevelopment(i Phone iPad) | 12:10 | comments(0) | trackbacks(0) | pookmark |
Comment




whaisonStudyNoteBook をFaceBookで いいね!





Share |









Trackback
URL : http://whaison.jugem.jp/trackback/523