Pau*_*aul 17 uibarbuttonitem uinavigationitem ios swift
我怎么能在swift中得到rightbarbuttonItem的框架?我发现了这个:UIBarButtonItem:我怎样才能找到它的框架?但它说无法将NSString转换为UIView,或者无法将NSString转换为String:
let str : NSString = "view" //or type String
let theView : UIView = self.navigationItem.rightBarButtonItem!.valueForKey("view")//or 'str'
Run Code Online (Sandbox Code Playgroud)
目标是删除rightBarButtonItem,改为添加imageView,并使用fadeOut效果移动它.
谢谢
Chr*_*örz 32
你应该尝试像:
var barButtonItem = self.navigationItem.rightBarButtonItem!
var buttonItemView = barButtonItem.valueForKey("view")
var buttonItemSize = buttonItemView?.size
Run Code Online (Sandbox Code Playgroud)
编辑(Swift 3):
var barButtonItem = self.navigationItem.rightBarButtonItem!
let buttonItemView = barButtonItem.value(forKey: "view") as? UIView
var buttonItemSize = buttonItemView?.size
Run Code Online (Sandbox Code Playgroud)
小智 5
在 Swift4、XCode9 中
for view in (self.navigationController?.navigationBar.subviews)! {
if let findClass = NSClassFromString("_UINavigationBarContentView") {
if view.isKind(of: findClass) {
if let barView = self.navigationItem.rightBarButtonItem?.value(forKey: "view") as? UIView {
let barFrame = barView.frame
let rect = barView.convert(barFrame, to: view)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)