Хотите изменить изображение кнопки панели изображений
Я создал 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];