положить случайные числа в столбец UIPicker - PullRequest
0 голосов
/ 09 октября 2011

Это то, что я хочу:

Как случайным образом выбрать объект из массивов, которые я должен заполнить в первых трех столбцах моего UIPicker.Я хочу, чтобы последние два столбца не были затронуты этим действием.Поэтому, когда пользователь нажимает кнопку «Создать», он помещает случайные объекты в первые три столбца моего средства выбора.Вот что у меня есть:

- (void)viewDidLoad

{

self.column1Array = [[NSArray alloc] initWithObjects:
                     @"+10", @"+9", @"+8", @"+7", @"+6", @"+5", @"+4", @"+3", @"+2",     @"+1", @"0", @"-1", @"-2", @"-3", @"-4", @"-5", @"-6", @"-7", @"-8", @"-9", 
                     @"-10", nil];

self.column2Array = [[NSArray alloc] initWithObjects:
                     @"+", @"-", nil];

self.column3Array = [[NSArray alloc] initWithObjects:
                     @"+10", @"+9", @"+8", @"+7", @"+6", @"+5", @"+4", @"+3", @"+2", @"+1", @"0", @"-1", @"-2", @"-3", @"-4", @"-5", @"-6", @"-7", @"-8", @"-9", 
                     @"-10",nil];
self.column4Array = [[NSArray alloc] initWithObjects:
                     @"=", nil];
self.column5Array = [[NSArray alloc] initWithObjects:
                     @"+20", @"+19", @"+18", @"+17", @"+16", @"+15", @"+14", @"+13",    @"+12", 
                     @"+11", @"+10", @"+9", @"+8", @"+7", @"+6", @"+5", @"+4", @"+3", @"+2", 
                     @"+1", @"0", @"-1", @"-2", @"-3", @"-4", @"-5", @"-6", @"-7", @"-8", @"-9", 
                     @"-10",@"-11", @"-12", @"-13", @"-14", @"-15", @"-16", @"-17", @"-18", 
                     @"-19", @"-20", nil];

[super viewDidLoad];

}

1 Ответ

1 голос
/ 09 октября 2011

Это должно сработать, хотя я не проверял это.Это также предполагает, что ваш UIPicker называется picker.

int column1Random = (arc4random() % [colum1Array count])-1;
[picker selectRow:column1Random inComponent:0 animated:YES];

int column2Random = (arc4random() % [colum2Array count])-1;
[picker selectRow:column2Random inComponent:1 animated:YES];

int column3Random = (arc4random() % [colum3Array count])-1;
[picker selectRow:column3Random inComponent:2 animated:YES];

Вам необходимо обновить pickerView: numberOfRowsInComponents и pickerView: titleForRows: forComponents методы

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent :(NSInteger)component 
{ 
    if (component==0) {
        return [column1Array count];
    } else if (component==1){ 
        return[column2Array count];
    } else if (component==2){ 
        return[column32Array count];
    } else if (component==3){ 
        return[column4Array count];
    } else {
        return[column5Array count];
    }
}
// Method to show the title of row for a component.
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{ 
    switch (component)  
    {
        case 0:
            return [column1Array objectAtIndex:row];
            break;
        case 1:
            return [column2Array objectAtIndex:row];
            break;
        case 2:
            return [column3Array objectAtIndex:row];
            break;
        case 3:
            return [column4Array objectAtIndex:row];
            break;
        case 4:
            return [column5Array objectAtIndex:row];
            break;
        }
    return nil;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...