Objective c 如何在navigationItem.titleView中调整UIImageView的大小

Objective c 如何在navigationItem.titleView中调整UIImageView的大小,objective-c,uiimageview,ios11,Objective C,Uiimageview,Ios11,我正在尝试调整放置在TableViewController的navigationItem.titleView中的图像的大小。我在TableViewControllerviewDidLoad中使用了以下代码来完成此操作: UIImageView* iv = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; iv.contentMode = UIViewContentModeScaleAspectFit; UIImage* i

我正在尝试调整放置在TableViewController的
navigationItem.titleView
中的图像的大小。我在TableViewController
viewDidLoad
中使用了以下代码来完成此操作:

UIImageView* iv = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
iv.contentMode = UIViewContentModeScaleAspectFit;
UIImage* image = [UIImage imageNamed:@"logo.png"];
[iv setImage:image];
self.navigationItem.titleView = iv;
但是,图像似乎不受我设置的40x40帧的影响。结果如下所示:


图像明显超出了我指定的40 x 40限制如何才能使图像不占用导航栏中的所有可用空间?我希望徽标更小,并且在顶部和底部有一点填充。

您应该创建一个
ui视图
,在其上添加您的徽标,然后使用此视图设置
self.navigationItem.titleView
。你可以在下面查看我的代码

UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

UIImageView *titleImageView = [[UIImageView alloc] initWithFrame:titleView.frame];
titleImageView.image = [UIImage imageNamed:@"logo.png"];;
titleImageView.contentMode = UIViewContentModeScaleAspectFit;

[titleView addSubview:titleImageView];

self.navigationItem.titleView = titleView;