UIMenuItem
使用 UILabel
来显示其标题,这意味着我们可以使用 -drawTextInRect:
方法来支持图像。
UIMenuItem+CXAImageSupport
是一种肮脏的漏洞修补方法,但在大多数情况下应该是安全的。不包含任何私有 API。
制作一个分类,而不是对 UIMenuItem
进行子类化可以获得更大的灵活性。是的,这个分类也可以应用到神奇的 PSMenuItem 上!
将 UIMenuItem+CXAImageSupport.{h,m}
添加到您的项目中。
方法名称描述了全部。默认渲染带有文本标题的阴影。如果您想隐藏阴影,将 hidesShadow
设置为 YES
。
- (id)cxa_initWithTitle:(NSString *)title action:(SEL)action image:(UIImage *)image;
- (id)cxa_initWithTitle:(NSString *)title action:(SEL)action image:(UIImage *)image hidesShadow:(BOOL)hidesShadow;
- (void)cxa_setImage:(UIImage *)image forTitle:(NSString *)title;
- (void)cxa_setImage:(UIImage *)image hidesShadow:(BOOL)hidesShadow forTitle:(NSString *)title;
UIMenuItem+CXAImageSupport
使用 UIMenuItem
的标题来映射相关图像,因为没有其他关于 UIMenuItem
的线索可以找到以将其连接到 UILabel
。您不能为相同的标题设置不同的图像。
在 MIT 许可证下。请参阅 LICENSE 文件以获取更多信息。