Search code examples
iosswiftuibarbuttonitemuinavigationitem

Get the frame of UIBarButtonItem in Swift?


how could I get the frame of a rightbarbuttonItem in swift? I found this : UIBarButtonItem: How can I find its frame? but it says cannot convert NSString to UIView, or cannot convert NSString to String :

let str : NSString = "view" //or type String
let theView : UIView = self.navigationItem.rightBarButtonItem!.valueForKey("view")//or 'str'

The goal is to remove the rightBarButtonItem, add an imageView instead, and move it with a fadeOut effect.

Thanks


Solution

  • You should try it like:

    var barButtonItem = self.navigationItem.rightBarButtonItem!
    var buttonItemView = barButtonItem.valueForKey("view")
    
    var buttonItemSize = buttonItemView?.size
    

    Edit (Swift 3):

    var barButtonItem = self.navigationItem.rightBarButtonItem!
    let buttonItemView = barButtonItem.value(forKey: "view") as? UIView
    var buttonItemSize = buttonItemView?.size