我知道有很多关于这个主题的问题/答案,但找不到合适的答案。 我以编程方式构建UIBar。我自己的按钮(png with transparancy)正在进行反向填充,而不是显示背景槽。
系统UIBarButton的工作完美,但不是我自己的。
工作的:
UIBarButtonItem *exportButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAction
target:self
action:@selector(tapExportButton:)];
不起作用:
UIBarButtonItem *favButton = [[UIBarButtonItem alloc]
initWithImage:[UIImage
imageNamed:@"FavoriteStar"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(toggleFavorite:)];
png的内部在我的gfx编辑器中是透明的
当我将它用作UIBarButtonItem时,内部部分是黑色的,但不是背景图片......
我该怎样做才能让它变得透明?
此致
Jeroen Wolff
答案 0 :(得分:0)
我正在修改您的代码以便更好地理解
UIBarButtonItem *favButton = [[UIBarButtonItem alloc]
initWithImage:[UIImage
imageNamed:@"FavoriteStar"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(toggleFavorite:)];
以下是需要注意的一些要点: 1.导航栏应该是透明的。 2.使用透明背景的PNG文件(质量更好)。 3.您也可以使用以下代码作为参考
UIButton *btnBack=[UIButton buttonWithType:UIButtonTypeCustom];
btnBack.frame=CGRectMake(0, 29.5, 38, 25);
[btnBack setBackgroundImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal];
[btnBack setBackgroundImage:[UIImage imageNamed:@"btn_backSelected.png"] forState:UIControlStateHighlighted];
[btnBack addTarget:self action:@selector(btnbackClicked:) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *barbutton=[[UIBarButtonItem alloc]initWithCustomView:btnBack];
[barbutton setStyle:UIBarButtonItemStyleBordered];
self.navigationItem.leftBarButtonItem=barbutton;
我使用自定义按钮作为条形按钮。
我真的很想听听你的意见。如果有效,请告诉我。