Я написал следующий код, чтобы сделать мою панель инструментов прозрачной.
[mtoolbar setBackgroundColor:[UIColor clearColor]];
Как сделать UIToolbar прозрачным?
Я написал следующий код, чтобы сделать мою панель инструментов прозрачной.
[mtoolbar setBackgroundColor:[UIColor clearColor]];
Как сделать UIToolbar прозрачным?
Вы можете установить свойство translucent на YES и посмотреть, поможет ли это.
Установка для свойства translucent значения YES не будет работать в iOS 5 и ниже. Вот как это можно сделать без создания подклассов панели инструментов:
const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *img = [[UIImage alloc] init];
UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];
[self.toolbar setBackgroundImage:maskedImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Проверьте приведенный ниже код
[myToolbar setBarStyle:UIBarStyleBlack];
[myToolbar setTranslucent:YES];
Взято из
@Brandon Bodnár ответил в сообщении SO ниже.
Разве UIToolBar не может быть прозрачным?
вы также можете использовать другой подход
for (UIView * sv in [toolBar subviews])
{
[sv removeFromSuperview];
}
;) любые iOs
Следующее работает в iOS 5 (и iOS 6 beta 4, хотя небольшая верхняя тень все еще видна там).
Обратите внимание: сделать прозрачным UIToolbar или UINavigationBar редко бывает хорошей идеей, а изменение элементов UIKit Apple таким образом рано или поздно сломается.
TransparentToolbar.h
#import <UIKit/UIKit.h>
@interface TransparentToolbar : UIToolbar
@end
TransparentToolbar.m
#import "TransparentToolbar.h"
@implementation TransparentToolbar
-(void)insertSubview:(UIView *)view atIndex:(NSInteger)index
{
// This method is called with a view of class "UINavigationBarBackground" or "_UIToolbarBackground", respectively. It would be possible to check for this with NSStringFromClass([view class]) to be completely sure that we're skipping the right view.
if (index != 0)
{
[super insertSubview:view atIndex:index];
}
else
{
// insert your custom background view, if you want to
}
}
@end
РЕДАКТИРОВАТЬ: В iOS 5+ также можно просто установить backgroundImage (который может быть прозрачным). Это, безусловно, «более чистое» решение, но оно менее гибкое, чем пользовательское UIView.
[someToolbar setBackgroundImage:[UIImage imageNamed:@"clear"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
У меня это сработало для iOS 6 и 7:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.toolBar setBackgroundImage:blank forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];