首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPicker视图问题

UIPicker视图问题
EN

Stack Overflow用户
提问于 2013-05-20 04:03:52
回答 1查看 1.2K关注 0票数 0

好的,让我们再试一次,我的应用程序中有一个选择器,它在下面的代码中工作得很好

代码语言:javascript
复制
_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"];

然后我想要在选择器中居中文本并改变颜色,我正在使用这个代码,但是我的选择器变成空白,但我可以看到图片,有什么想法吗?

代码语言:javascript
复制
- (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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 06:46:47

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

代码语言:javascript
复制
- (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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16638933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档