0

我想要一个 UIPickerView 在下面的设计中;

http://dl.dropbox.com/u/53051470/Screen%20shot%202012-04-18%20at%2012.02.36%20PM.png (对不起,作为新用户,不能在这里粘贴图片)

我也阅读了关于同一主题的其他问题,并尝试实现 pickerView:viewForRow:forComponent:reusingView: 方法,但没有得到实际结果;

要求就像选择的值应该显示在带有复选标记图像的绿色条中,并以白色显示;此外,当用户开始滚动选择器时,进入绿色条内的任何值都应该变成绿色,离开绿色条的任何值都应该变成黑色;

有什么建议吗?

亲切的问候;

4

2 回答 2

0

UIPickerView 多选行为,无需在pickerview前面添加其他视图,使用:https ://github.com/alexleutgoeb/ALPickerView

高度赞赏改进!

于 2012-04-18T11:17:04.240 回答
0

你应该使用该方法

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

并决定哪一行是突出显示的

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{   
        // i use a UILabel instead of your **custom UIView** , you may add a tick in you custom view

        UILabel *testRow = view?(UILabel *)view:[[[UILabel alloc] initWithFrame:CGRectMake(0,0, 140, 40)] autorelease];
        testRow.font = [UIFont fontWithName:[testArray objectAtIndex:row] size:16];
        testRow.text = [fontsArray objectAtIndex:row];
        testRow.backgroundColor = [UIColor clearColor];

        if ( row == selectedRow )
        {
            testRow.backgroundColor = [UIColor greenColor];
        }

        return testRow;
}

不要忘记将 showSelectionIndicator 设置为 NO

pickView.showsSelectionIndicator = NO;
于 2012-04-18T08:07:24.527 回答