在Swift中垂直居中的IndicatorImage

前端之家收集整理的这篇文章主要介绍了在Swift中垂直居中的IndicatorImage前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下代码自定义图像放入backIndicator Image中:
  1. var backButton = UIImage(named: "locationbar_back")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
  2. self.navigationController!.navigationBar.backIndicatorImage = backButton
  3. self.navigationController!.navigationBar.backIndicatorTransitionMaskImage = backButton

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

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

  1. for myview in self.navigationController!.navigationBar.subviews as [UIView]
  2. {
  3. if myview.frame.width == 17 //need a better way of identifying object
  4. {
  5. var newFrame = myview.frame
  6. newFrame.origin.y = 6.0
  7. myview.frame = newFrame
  8. }
  9. }

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

我试过这样说:

> viewDidLoad
> viewWillLayoutSubviews
> viewDidLayoutSubviews
> viewDidAppear

没有快乐

有没有任何建议吗?

您可以通过下一个代码直接更改您的UIImage位置.
原产地可以手动设置:
  1. ...
  2. var backButtonImage = UIImage(named: "backButtonImage")!
  3. backButtonImage = changeImagePosition(backButtonImage,origin: CGPointMake(0,0))
  4.  
  5. navigationController!.navigationBar.backIndicatorImage = backButtonImage
  6. navigationController!.navigationBar.backIndicatorTransitionMaskImage = backButtonImage
  7. ...
  8. func changeImagePosition(image: UIImage,origin: CGPoint) -> UIImage {
  9. let size = image.size
  10.  
  11. UIGraphicsBeginImageContextWithOptions(size,false,2)
  12. image.drawInRect(CGRectMake(origin.x,origin.y,size.width,size.height))
  13.  
  14. let newImage = UIGraphicsGetImageFromCurrentImageContext()
  15. UIGraphicsEndImageContext()
  16. return newImage
  17. }

猜你在找的Swift相关文章