获取UIBarButtonItem的宽度

Fab*_*oni 16 iphone objective-c uibarbuttonitem

我想要得到一个宽度UIBarButtonItem.

这不起作用:

barbuttonitem.customView.frame.size.width
Run Code Online (Sandbox Code Playgroud)

这也行不通:

barbuttonitem.width
Run Code Online (Sandbox Code Playgroud)

Jer*_*man 53

那这个呢:

UIBarButtonItem *item = /*...*/;
UIView *view = [item valueForKey:@"view"];
CGFloat width = view? [view frame].size.width : (CGFloat)0.0;
Run Code Online (Sandbox Code Playgroud)

  • @Ray Lillywhite:`-valueForKey:`是一种记录在案的公共方法.KVC API提供了一种防止直接实例变量访问的方法,因此如果值可访问,则不会对bar访问采取任何操作.一个问题可能是在未来版本的iOS中遇到未定义的值.要解决这个问题,您可以将调用包装在try-block中.此外,即使您认为自己无法在发往App Store的应用中使用此功能,也不意味着定位到越狱设备的用户无法在其应用中使用此方法. (8认同)