iOS 13 导航栏外观 setBackIndicatorImage 不工作
iOS 13 navigation bar appearance setBackIndicatorImage not working
我正在尝试使用新的 iOS 导航栏外观 API 来配置我的应用程序的后退按钮指示器,但它不起作用:
let bar = self.navigationController!.navigationBar
let sz = CGSize(20,20)
let arrow = UIImage(systemName:"arrowtriangle.left")!
let indic =
UIGraphicsImageRenderer(size:sz).image { ctx in
arrow.draw(in:CGRect(0,0,20,20)) // indicator is arrow
}
let indicmask =
UIGraphicsImageRenderer(size:sz).image { ctx in
ctx.fill(CGRect(0,0,20,20)) // mask is entire image
}
bar.standardAppearance.setBackIndicatorImage(
indic, transitionMaskImage: indicmask)
我只看到一个蓝色的大矩形。
怎么回事?
这是一个非常愚蠢的错误:Apple 参数落后了!只需交换图像到遮罩应该去的地方,遮罩去到图像应该去的地方,一切都会好起来的:
let bar = self.navigationController!.navigationBar
let sz = CGSize(20,20)
let arrow = UIImage(systemName:"arrowtriangle.left")!
let indic =
UIGraphicsImageRenderer(size:sz).image { ctx in
arrow.draw(in:CGRect(0,0,20,20)) // indicator is arrow
}
let indicmask =
UIGraphicsImageRenderer(size:sz).image { ctx in
ctx.fill(CGRect(0,0,20,20)) // mask is entire image
}
bar.standardAppearance.setBackIndicatorImage(
indicmask, transitionMaskImage: indic) // swap!
我正在尝试使用新的 iOS 导航栏外观 API 来配置我的应用程序的后退按钮指示器,但它不起作用:
let bar = self.navigationController!.navigationBar
let sz = CGSize(20,20)
let arrow = UIImage(systemName:"arrowtriangle.left")!
let indic =
UIGraphicsImageRenderer(size:sz).image { ctx in
arrow.draw(in:CGRect(0,0,20,20)) // indicator is arrow
}
let indicmask =
UIGraphicsImageRenderer(size:sz).image { ctx in
ctx.fill(CGRect(0,0,20,20)) // mask is entire image
}
bar.standardAppearance.setBackIndicatorImage(
indic, transitionMaskImage: indicmask)
我只看到一个蓝色的大矩形。
怎么回事?
这是一个非常愚蠢的错误:Apple 参数落后了!只需交换图像到遮罩应该去的地方,遮罩去到图像应该去的地方,一切都会好起来的:
let bar = self.navigationController!.navigationBar
let sz = CGSize(20,20)
let arrow = UIImage(systemName:"arrowtriangle.left")!
let indic =
UIGraphicsImageRenderer(size:sz).image { ctx in
arrow.draw(in:CGRect(0,0,20,20)) // indicator is arrow
}
let indicmask =
UIGraphicsImageRenderer(size:sz).image { ctx in
ctx.fill(CGRect(0,0,20,20)) // mask is entire image
}
bar.standardAppearance.setBackIndicatorImage(
indicmask, transitionMaskImage: indic) // swap!