我正在创建一个netflix的克隆版本,在配置导航栏时,我总是遇到一个奇怪的错误,而且我似乎找不到一个解决方案:我希望我的导航栏包含一个"leftBarButtonItem",其中包含Netflix徽标的UIImage,背景是透明的(位于我的assets文件夹中),但当我尝试这样做时,对齐总是关闭;就好像填充被添加到图像的任一侧(参见下面的屏幕截图A和B)。
我试过了
- 用标题替换UIImage:字符串(参见下面的截图E和F)。按预期工作,但理想情况下需要一个UIImage
- 正在删除包含."withRenderingMode"的行
- 将我的assets文件夹中的图像换为较小的尺寸
- 更改UIImage的宽度失败(参见下面的屏幕截图C和D)
要了解更多内容,您可以点击下面的链接访问我的github repo。有问题的代码位于Controllers〉HomeViewController的第33行
Github链接:https://github.com/nlpope/Netflix-Clone
故障截图:
A) When UIImage is included:
B) UIImage result:
C) When width of -5 is added:
D) altered width result:
部分成功截图:
E) when image is replaced w a title:
F) title result:
1条答案
按热度按时间s71maibg1#
我明白了,问题出在UIBarButtonItem中的Netflix logo大小,之前我是通过预设的UIBarButtonItem(image:,style:,target:,action:)直接将Netflix的UIImage赋给navigationItem.leftBarButtonItem,
netflix clone Mk1
相反,我应该通过传递一个customView参数来间接完成此操作:
netflix clone Mk2
这允许我设置barButtonItem的宽度和高度约束,而不会受到自定义视图(netflix徽标)的负面影响(因为它只是一个自定义视图,通过我们实际编辑的内容传递
来源:Change size of UIBarButtonItem (image) in Swift 3