一个动作的多个UIButton,读取当前按钮并将其存储为临时值

时间:2012-11-25 00:08:23

标签: ios uibutton uislider

我是一名致力于情绪注释应用的初学者。有几个按钮,如“快乐”,“愤怒”等...所有按钮将调用相同的操作。还有一个UISlider。如果单击“快乐”,则调整滑块以注释您现在的快乐程度。之后点击“愤怒”按钮,滑块的当前值将存储在相对于最后一个按钮的浮点变量中,如“happy”。然后你调整相同的滑块来注释你是多么“生气”。接下来的按钮...... 我不知道如何存储最后一个按钮的滑块值... 有什么想法吗? 非常感谢你!!

1 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题。最简单的解决方案之一是标记按钮,然后使用方法确定动作来自哪个按钮,设置其中包含滑块值的字典对象,然后相应地将其写入强数组。 / p>

MainViewController.h

int emotionNumber
@property (strong, nonatomic) NSMutableArray *array;
//Declare your slider and buttons

MainViewController.m

@implementation
@synthesise array;

- (void)viewDidLoad {
[happyButton setTag:0];
[angryButton setTag:1];

array = [[NSMutableArray alloc] initWithCapacity:X]; <---- number of emotions
}

- (IBAction)setValue:(id)sender {

    // You will also want to keep track of emotionNumber (the int) here, and modify the
    //code below to write it to the correct place in the array.

    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
    UIButton *button = (UIButton *)sender;

    switch (button.tag) {
        case 0:
            [dictionary setValue:slider.value forKey:@"angry"];
            [array addObject:dictionary];
            break;

        case 1:
            [dictionary setValue:slider.value forKey:@"happy"];
            [array addObject:dictionary];
            break;

        default:
            break;
    }

}