sen*_*rio 22 uinavigationbar ios
我在UIViewController的viewDidLoad中使用了这段代码.我没有错.图像存在.我得到了背景而不是图像.图像是一种徽标.
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
/* Background of navigationBar. */
UIImage * navigationBarImage = [UIImage imageNamed:@"01_navbar_portrait.png"];
[self.navigationController.navigationBar setBackgroundImage:navigationBarImage forBarMetrics:UIBarMetricsDefault];
/* Image in navigationBar */
UIImage * logoInNavigationBar = [UIImage imageNamed:@"01_logo.png"];
UIImageView * logoView = [[UIImageView alloc] init];
[logoView setImage:logoInNavigationBar];
self.navigationController.navigationItem.titleView = logoView;
}
Run Code Online (Sandbox Code Playgroud)
jha*_*ott 54
该UINavigationController管理通过查看导航栏navigationItem导航堆栈上的最顶层视图控制器的性能.因此,要将视图更改为徽标,您需要在使用徽标的视图控制器中设置它(即根视图控制器或另一个被推入堆栈的控制器).
在viewDidLoad您的视图控制器中执行以下操作:
UIImage* logoImage = [UIImage imageNamed:@"logo.png"];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:logoImage];
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您正在设置错误的导航项:
// Oops...
self.navigationController.navigationItem.titleView = logoView;
// Should be this:
self.navigationItem.titleView = logoView;
Run Code Online (Sandbox Code Playgroud)
小智 9
首先,我们必须创建一个视图,其大小与导航栏相同,然后添加图像视图并设置其框架,因为它在导航栏中看起来居中.它适用于所有ios版本,它会根据设备自动获取帧大小(视网膜或正常)并像魔术一样工作.
UIView *headerView = [[UIView alloc] init];
headerView.frame = CGRectMake(0, 0, 320, 44);
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Header.png"]];
imgView.frame = CGRectMake(75, 0, 150, 44);
imgView.contentMode = UIViewContentModeScaleAspectFit;
[headerView addSubview:imgView];
navigationCtrl.navigationBar.topItem.titleView = headerView;
[headerView release];
[imgView release];
Run Code Online (Sandbox Code Playgroud)
迅速:
var logoImage:UIImage = UIImage(named: "logo_text")!
self.navigationItem.titleView = UIImageView(image: logoImage)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32042 次 |
| 最近记录: |