【发布时间】:2022-01-07 12:53:34
【问题描述】:
所以我尝试使用以下代码在 UINavigationbar 的 titleview 属性中添加 UIImageview。问题是,尽管我将特定大小放入包含 UIImageview 的 UIView ,其中包含图像,但它不能按预期工作。结果是导航栏中的图像比我使用 CGRectMake 设置的图像更大。同样在某些视图中,它与中心不对齐!我错过了什么?还有其他方法可以将图像添加到导航栏吗?
-(void)viewDidLayoutSubviews{
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f,10.0f,16.0f)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f,10.0f,16.0f)];
CGSize imageSize = CGSizeMake(10, 16);
CGFloat marginX = (self.navigationController.navigationBar.frame.size.width / 2) - (imageSize.width / 2);
imageView.frame = CGRectMake(marginX, 11, imageSize.width, imageSize.height);
imageView.contentMode = UIViewContentModeScaleAspectFit;
UIImage *image = [UIImage sdk_imageName:@"logo.png"];
[imageView setImage:image];
[containerView addSubview:imageView];
self.navigationItem.titleView=imageView;
}
【问题讨论】:
-
你想要一个
10x16图像视图作为标题视图吗? -
您必须使用自动布局约束来调整标题视图的大小。设置框架没有任何作用。
标签: ios objective-c uinavigationbar