更改UIPicker突出显示的标签宽度

时间:2013-10-22 08:16:01

标签: ios objective-c ios7 uipicker

我在我的一个项目中使用UIPicker。

我有UIPickerView的大小&作为

的位置
 58, 264, 204, 216
  x   y  width height

我正在使用兼容iOS 7的应用程序。

在iOS 7中,我只想显示宽度为204,但在iOS 6及更早版本中,我希望显示宽度为300.

以下是我的所作所为。

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

    if (IS_DEVICE_RUNNING_IOS_7_AND_ABOVE()) {
    NSLog(@"changing font...");
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 204, 44)]; // your frame, so picker gets "colored"

        label.textColor = [UIColor blackColor];
        label.font = [UIFont fontWithName:localize(@"myFontName") size:14];
        label.textAlignment = NSTextAlignmentCenter;

        label.text = [arrayGender objectAtIndex:row];

        return label;
    } else {
        [pickerView setFrame: CGRectMake(10, 264, 300, 216)];
        pickerView.backgroundColor = [UIColor clearColor];
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 260, 44)];

        label.textColor = [UIColor blackColor];
        label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14];

        label.text = [NSString stringWithFormat:@"%@", [arrayGender objectAtIndex:row]];
        return label;
    }
}

这是完美的。

问题来自那里的荧光笔。荧光笔大小固定为204(这是UIPicker在IB中设置的大小宽度)

知道怎么解决这个荧光笔?

通过荧光笔,下面是我的意思。

enter image description here

以下是我所说的实际图像。

enter image description here

2 个答案:

答案 0 :(得分:0)

看起来您应该将自己的UIView作为自定义选择指标。查看here了解详情。

答案 1 :(得分:0)

我通过扭转这些东西来解决它。

在IB中,我创建了宽度为320的UIPicker视图,在代码中我调整了宽度。