2014-04-03 78 views
1

我有IBOutlets爲我的UIButtons如下所示。這繼續了30次。我想知道是否有一種方法可以使我無需像這樣列出每個按鈕插座,並使其更加有組織?我有我的遊戲視圖控制器UIButtons IBOutlets,需要更好地組織

如果任何人都可以指出我在正確的方向,我將深深感激。

@property (weak,nonatomic) IBOutlet UIButton *level1Button; 
@property (weak,nonatomic) IBOutlet UIButton *level2Button; 
@property (weak,nonatomic) IBOutlet UIButton *level3Button; 
+0

你爲什麼需要這些網點?你如何使用它們? – rdelmar

+0

我希望我的回答可以幫助你 –

回答

2

而不是大量的網點,您可以使用outlet集合。在您的.h文件中:

@property (weak, nonatomic) IBOutletCollection(UIButton) NSArray *buttons; 

然後,你可以控制,拖動按鈕到該行,他們都將在陣列中,在爲了你拖累他們。

+0

謝謝,感謝它,我會盡快接受答案只要我允許。從來不知道這種類型的方法甚至存在。 – user3435527

0

另一種選擇是(例如具有6 UIButtons):

創建的按鈕。 e.g在viewDidLoad

//This is an array with your buttons positions 
self.cgPointsArray = @[[NSValue valueWithCGPoint:CGPointMake(25, 130)],[NSValue valueWithCGPoint: CGPointMake(70, 130)], 
         [NSValue valueWithCGPoint:CGPointMake(115, 130)],[NSValue valueWithCGPoint:CGPointMake(160, 130)], 
         [NSValue valueWithCGPoint:CGPointMake(205, 130)],[NSValue valueWithCGPoint:CGPointMake(250, 130)]]; 

// for loop to allocate the buttons 
for (int i = 0; i < [self.cgPointsArray count]; i++) 
{ 
    NSValue *value = [self.cgPointsArray objectAtIndex:i]; 
    CGPoint point = [value CGPointValue]; 

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    button.frame = CGRectMake(point.x, point.y, 20, 20); 
    [button setBackgroundColor:[UIColor blueColor]]; 
    [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    button.tag = i; 
    [self.view addSubview:button]; 
} 

然後你就可以通過管理在tags事件:

- (void) buttonClicked: (id) sender 
{ 
    UIButton *tempButton = (UIButton*) sender; 
    int tag = tempButton.tag; 

    if (tag == 0) 
    { 
     //Do something 
    } 
    else if (tag == 1) 
    { 
     //Do something 
    } 
    else if (tag == 2) 
    { 
     //Do something 
    } 
    else if (tag == 3) 
    { 
     //Do something 
    } 
    else if (tag == 4) 
    { 
     //Do something 
    } 
    else if (tag == 5) 
    { 
     //Do something 
    } 

}

相關問題