Как сделать прозрачный и плоский UIBarButtonItem? - PullRequest
0 голосов
/ 10 октября 2011

Я хочу сделать кнопки для моего приложения плоскими и прозрачными, как кнопки в приложении kindle ( см. Кнопку магазина ).

Я пытаюсь установить собственный фон по коду без удачи (кнопка нарисована в виде прямоугольника, цвет рамки заполняет весь фон):

- (UIImage *) screenshot {
    // Create a graphics context with the target size
    // On iOS 4 and later, use UIGraphicsBeginImageContextWithOptions to take the scale into consideration
    // On iOS prior to 4, fall back to use UIGraphicsBeginImageContext
    CGSize imageSize = self.bounds.size;

    if (NULL != UIGraphicsBeginImageContextWithOptions)
        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
    else
        UIGraphicsBeginImageContext(imageSize);

    CGContextRef context = UIGraphicsGetCurrentContext();

    [self.layer renderInContext:context];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;   
}

+(UIImage *) buttonFlat {
    UIView *bt = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 1.0f, 1.0f)];

    bt.backgroundColor = [UIColor blackColor];
    bt.layer.borderColor = [UIColor lightGrayColor].CGColor;
    bt.layer.borderWidth = 1;
    bt.layer.cornerRadius = 5.0;
    bt.alpha = 0.7;

    return [bt screenshot];
}

Я знаю, как это сделать с помощью обычной кнопки UIB, но предпочитаю сделать это, чтобы я мог сохранить стандартные значки UIBarButtonItem, если это возможно ...

1 Ответ

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

UIBarButton может содержать любой пользовательский вид:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:someView];
...