Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIPicker视图问题_Objective C_Uipickerview - Fatal编程技术网

Objective c UIPicker视图问题

Objective c UIPicker视图问题,objective-c,uipickerview,Objective C,Uipickerview,好的,让我们再试一次,我的应用程序中有一个选择器,它可以很好地处理这里的代码 _fuglar = [[NSArray alloc]initWithObjects:@"Allt árið", @"Hrafn", @"Svartbakur",@"Silfurmáfur",@"Sílamáfur",@"Frá 20.ágúst til 15.mars",@"Grágæs",@"Heiðagæs",@"Frá 1.september til 15.mars",@"Fýll",@"Dílaskarfur"

好的,让我们再试一次,我的应用程序中有一个选择器,它可以很好地处理这里的代码

_fuglar = [[NSArray alloc]initWithObjects:@"Allt árið", @"Hrafn", @"Svartbakur",@"Silfurmáfur",@"Sílamáfur",@"Frá 20.ágúst til 15.mars",@"Grágæs",@"Heiðagæs",@"Frá 1.september til 15.mars",@"Fýll",@"Dílaskarfur", nil];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma mark - UIPickerView Methods
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return _fuglar.count;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [_fuglar objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//Create UIImage objects
UIImage * uglaImage = [UIImage imageNamed:@"ugla1.jpg"];
UIImage * ravenImage = [UIImage imageNamed:@"raven.jpg"];
UIImage * svartbakurImage = [UIImage imageNamed:@"svartbakur2.jpg"];
然后我想把文本放在选择器的中心,改变颜色,我用这个代码,但是我的选择器变成了空白,但是我可以看到图片,有什么想法吗

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 37)];
label.textAlignment = NSTextAlignmentCenter;
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor blueColor];
return label;

填充选择器视图时,可以实现titleForRow或viewForRow,但不能同时实现两者。通过实现viewForRow,您将用视图替换默认标签。要解决此问题,请删除titleForRow方法,并在viewForRow中设置标签的文本:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 37)];
    label.textAlignment = NSTextAlignmentCenter;
    label.backgroundColor = [UIColor clearColor];
    if (row == 0 || row == 2) {
        label.textColor = [UIColor blueColor];
    }else{
        label.textColor = [UIColor blackColor];
    }
    label.text = [_fuglar objectAtIndex:row];
    return label;
}

非常感谢您的帮助,现在这个问题已经解决了:)您可以再帮我一件事吗?如果我的选择器行中只需要第一行和第三行蓝色,我该怎么办。@Sleeperin,在viewForRow中放入if-else语句,并在(row==0 | | row==3)时返回蓝色,谢谢你的帮助:)对不起,你能告诉我怎么做吗?我是编程新手@rdelmar@Sleeperinn,我编辑了我的答案(应该是第0行或第2行,而不是我在评论中说的第0行或第3行)。