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

How can I resize a UIImageView in navigationItem.titleView

我正在尝试调整我放置在 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;

不过,我设置的40 x 40的画幅似乎并没有影响图像。结果如下所示:

图片明显超出了我指定的 40 x 40 限制。 如何让图片不占用导航栏中的所有可用空间 space? 我希望徽标更小,顶部有一些填充,底.

您应该创建一个 UIView,在上面添加您的徽标,然后使用此视图设置 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;