在Swift中垂直居中的IndicatorImage

我使用以下代码自定义图像放入backIndicator Image中:
var backButton = UIImage(named: "locationbar_back")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
self.navigationController!.navigationBar.backIndicatorImage = backButton
self.navigationController!.navigationBar.backIndicatorTransitionMaskImage = backButton

图像略高于标准图形,所以我想要垂直居中.

我已经尝试在导航栏中找到图像(不是很优雅)使用这个代码(任何更好的建议欢迎):

for myview in self.navigationController!.navigationBar.subviews as [UIView]
{
    if myview.frame.width == 17 //need a better way of identifying object
    {
        var newFrame = myview.frame
        newFrame.origin.y = 6.0
        myview.frame = newFrame
    }
}

令人沮丧的是,图像暂时在正确的地方出现,然后被恢复到原来的位置.

我试过这样说:

> viewDidLoad
> viewWillLayoutSubviews
> viewDidLayoutSubviews
> viewDidAppear

没有快乐

有没有任何建议吗?

您可以通过下一个代码直接更改您的UIImage位置.
原产地可以手动设置:
...
var backButtonImage = UIImage(named: "backButtonImage")!
backButtonImage = changeImagePosition(backButtonImage,origin: CGPointMake(0,0))

navigationController!.navigationBar.backIndicatorImage = backButtonImage
navigationController!.navigationBar.backIndicatorTransitionMaskImage = backButtonImage
...
func changeImagePosition(image: UIImage,origin: CGPoint) -> UIImage {
    let size = image.size

    UIGraphicsBeginImageContextWithOptions(size,false,2)
    image.drawInRect(CGRectMake(origin.x,origin.y,size.width,size.height))

    let newImage = UIGraphicsGetimageFromCurrentimageContext()
    UIGraphicsEndImageContext()
    return newImage
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...