Хотите изменить изображение кнопки панели изображений

Я создал AVFoundation Camera, теперь я хочу изменить изображение элемента панели инструментов на свое собственное изображение, когда пользователь нажмет кнопку записи камеры, после чего изображение изменится.

Я сделал это изменение, но проблема в том, что мое изображение отображается черно-белым без помощи color.soplz.

Мой код:

- (void)viewDidLoad

{
[[self recordButton] setImage:[UIImage imageNamed:@"camara30.png"]]  //first time setting image
}

- (void)captureManagerRecordingBegan:(AVCamCaptureManager *)captureManager
{
    CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopCommonModes, ^(void) {
       // [[self recordButton] setTintColor:[UIColor redColor]];
        [[self recordButton] setImage:[UIImage imageNamed:@"record30.png"]];   //changing image when record begun
        [[self recordButton] setEnabled:YES];
    });
}

- (void)captureManagerRecordingFinished:(AVCamCaptureManager *)captureManager
{
    CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopCommonModes, ^(void) {
        [[self recordButton] setImage:[UIImage imageNamed:@"camara30.png"]];   //changing image when record end
        [[self recordButton] setEnabled:YES];
    });
}

Мой первый экран перед началом записи:

Мой второй экран после окончания записи:

2 ответа

Решение
    UIBarButtonItem *temp = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"BlueMarbleDrop"] forState:UIControlStateNormal];
    button.frame=CGRectMake(0.0, 0.0, 60.0, 30.0);
    [button addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem* stopBtn = [[UIBarButtonItem alloc] initWithCustomView:button];

    [self.toolBar setItems:[NSArray arrayWithObjects:temp,stopBtn,temp, nil]];

выход выглядит как

я взял это из UIBarButtonItem с цветом?

Попробуйте установить изображение [[self recordButton] setImage:[UIImage imageNamed:@"record30.png"] forState:UIControlStateNormal];

Другие вопросы по тегам