Lan*_*ler 6 iphone transparency uinavigationbar opacity uibarbuttonitem
我无法让这个工作,我在网上看到了一个工作的例子.现在提供赏金,因为它让我疯狂.它应该很容易,但似乎并非如此.
我希望我的UINavigationBar上的按钮是半透明的,这样它们就可以显示UINavigationBar上的任何背景.在许多应用中可以看到这种效果,下面是图像示例.您可以通过在项目上设置自定义背景来实现这一点,我认为这是一个不可接受的解决方案,因为它要求您事先准备好图像,并且它们不适用于可变按钮等.它们看起来不像Apple UI和我不相信也有理由这样做,UIKit已经在为这些按钮绘制背景,我们只需要改变它.正确的解决方案使用Apple的apis生成的条形项和视图.
UIBarButtonItem不是UIView的子类.当您创建一个并将其添加到UINavigationBar时,框架中某处的某些代码会为其绘制视图.框架方法似乎抵制任何与允许条形项透明度相关的事情,例如tintColor属性.
例如,这不起作用:
UINavigationItem *item = [[UINavigationItem alloc] init];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"SUCKS" style:UIBarButtonItemStyleBordered target:self action:@selector(whatever:)];
editButton.tintColor = [UIColor colorWithWhite:0.4 alpha:0.3];
item.leftBarButtonItem = editButton;
Run Code Online (Sandbox Code Playgroud)
我所做的一切都不会让UINavigationBar为其条形项目提供半透明度.我相信在运行时我们需要:
但我无法在运行时获取图像或正确掩盖它.你怎么做到这一点?

创建一个自定义uiview并在其中绘制一个半透明的黑色矩形,并将该视图与initWithCustomView一起使用.
如果不这样做,您可能必须使用图像(png).例如1x1黑色像素png,不透明度为30%.然后你可以使用initWithImage.
编辑:我有第二种方法使用:
buttonThree = [[UIBarButtonItem alloc] initWithTitle:@" sort button " style:UIBarButtonItemStyleBordered target:self action:@selector(sortMethod)];
UIImage *thebgUIimage = [UIImage imageNamed:@"semi.png"];
[buttonThree setBackgroundImage:thebgUIimage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
这会生成一个按钮,该按钮具有导航栏背景图像显示的透明背景图像.但是,您需要创建一个带圆角的图像,因此每个按钮宽度需要一个图像.我在尝试上面的内容后也找到了这个帖子
| 归档时间: |
|
| 查看次数: |
7013 次 |
| 最近记录: |