UIBarButtonItem.h
2019-02-18 本文已影响3人
zhYx_
#if USE_UIKIT_PUBLIC_HEADERS || !__has_include(<UIKitCore/UIBarButtonItem.h>)
//
// UIBarButtonItem.h
// UIKit
//
// Copyright (c) 2008-2018 Apple Inc. All rights reserved.
//
#import <CoreGraphics/CoreGraphics.h>
#import <Foundation/Foundation.h>
#import <UIKit/UIBarItem.h>
#import <UIKit/UIKitDefines.h>
#import <UIKit/UIAppearance.h>
#import <UIKit/UIApplication.h>
#import <UIKit/UIBarCommon.h>
#import <UIKit/UISpringLoadedInteractionSupporting.h>
NS_ASSUME_NONNULL_BEGIN
/* 标签按钮风格 <枚举> */
typedef NS_ENUM(NSInteger, UIBarButtonItemStyle) {
UIBarButtonItemStylePlain,
UIBarButtonItemStyleBordered NS_ENUM_DEPRECATED_IOS(2_0, 8_0, "Use UIBarButtonItemStylePlain when minimum deployment target is iOS7 or later"),
UIBarButtonItemStyleDone,
};
/* 标签按钮系统风格 <枚举> */
typedef NS_ENUM(NSInteger, UIBarButtonSystemItem) {
UIBarButtonSystemItemDone,
UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,
UIBarButtonSystemItemSave,
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItemBookmarks,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
UIBarButtonSystemItemUndo NS_ENUM_AVAILABLE_IOS(3_0),
UIBarButtonSystemItemRedo NS_ENUM_AVAILABLE_IOS(3_0),
UIBarButtonSystemItemPageCurl NS_ENUM_DEPRECATED_IOS(4_0, 11_0)
};
@class UIImage, UIView;
#pragma mark - 标签按钮
#pragma mark -
/*
- UIBarButtonItem
用于放置在工具栏或标签栏上的按钮
*/
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIBarButtonItem : UIBarItem <NSCoding>
/* 实例化 */
- (instancetype)init NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
/**
实例化
@param image 图片
@param style 风格
@param target 点击监听者
@param action 点击操作事件
@return UIBarButtonItem
*/
- (instancetype)initWithImage:(nullable UIImage *)image style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action;
/**
实例化
@param image 图片
@param landscapeImagePhone 用于UIUserInterfaceIdiom Phone中横向条中的图像
@param style 风格
@param target 点击监听者
@param action 点击操作事件
@return UIBarButtonItem
*/
- (instancetype)initWithImage:(nullable UIImage *)image landscapeImagePhone:(nullable UIImage *)landscapeImagePhone style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action NS_AVAILABLE_IOS(5_0);
/**
实例化
@param title 标题文字
@param style 风格
@param target 点击监听者
@param action 点击操作事件
@return UIBarButtonItem
*/
- (instancetype)initWithTitle:(nullable NSString *)title style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action;
/**
实例化
@param systemItem 系统风格
@param target 点击监听者
@param action 点击操作事件
@return UIBarButtonItem
*/
- (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(nullable id)target action:(nullable SEL)action;
/**
实例化
@param customView 自定义View
@return UIBarButtonItem
*/
- (instancetype)initWithCustomView:(UIView *)customView;
// 设置 风格(默认:UIBarButtonItemStylePlain)
@property(nonatomic) UIBarButtonItemStyle style;
// 设置 宽(默认:0.0)
@property(nonatomic) CGFloat width;
// 设置 条形按钮上显示的可能标题集(默认:nil)
@property(nullable, nonatomic,copy) NSSet<NSString *> *possibleTitles;
// 设置 自定义View(默认:nil)
@property(nullable, nonatomic,strong) __kindof UIView *customView;
// 设置 点击操作事件(默认:NULL)
@property(nullable, nonatomic) EL action;
// 设置 点击监听者(默认:nil)
@property(nullable, nonatomic,weak) id target;
/**
设置 背景图片
@param backgroundImage 背景图
@param state 指定状态
@param barMetrics 指定度量
*/
- (void)setBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/**
获取 背景图
@param state 指定状态
@param barMetrics 指定度量
@return UIImage
*/
- (nullable UIImage *)backgroundImageForState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/**
设置 背景图(实例化调用时,style必须与按钮样式匹配)
@param backgroundImage 背景图
@param state 指定状态
@param style 指定风格
@param barMetrics 指定度量
*/
- (void)setBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state style:(UIBarButtonItemStyle)style barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;
/**
获取 背景图
@param state 指定状态
@param style 指定风格
@param barMetrics 指定度量
@return UIImage
*/
- (nullable UIImage *)backgroundImageForState:(UIControlState)state style:(UIBarButtonItemStyle)style barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;
// 设置 主题色
@property(nullable, nonatomic,strong) UIColor *tintColor NS_AVAILABLE_IOS(5_0);
/**
调整 条形内边框条形按钮的垂直居中
@param adjustment 调整距离
@param barMetrics 指定度量
*/
- (void)setBackgroundVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/**
获取 条形内边框条形按钮的垂直居中调整的距离
@param barMetrics 指定度量
@return 调整的距离
*/
- (CGFloat)backgroundVerticalPositionAdjustmentForBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/**
调整 边框条形按钮内的标题位置(如果有)
@param adjustment 调整范围
@param barMetrics 指定度量
*/
- (void)setTitlePositionAdjustment:(UIOffset)adjustment forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/**
获取 边框条形按钮内的调整标题范围
@param barMetrics 指定度量
@return 调整的范围
*/
- (UIOffset)titlePositionAdjustmentForBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/* 下边方法 仅适用于UINavigationBar后退按钮,其他按钮无效 */
/**
设置 背景图片(返回按钮的)
@param backgroundImage 背景图
@param state 指定状态
@param barMetrics 指定度量
*/
- (void)setBackButtonBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED;
/**
获取 背景图片(返回按钮的)
@param state 指定状态
@param barMetrics 指定度量
@return UIImage
*/
- (nullable UIImage *)backButtonBackgroundImageForState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED;
/**
调整 边框条形按钮内的标题位置(如果有)(返回按钮的)
@param adjustment 调整范围
@param barMetrics 指定度量
*/
- (void)setBackButtonTitlePositionAdjustment:(UIOffset)adjustment forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED;
/**
获取 边框条形按钮内的调整标题范围(返回按钮的)
@param barMetrics 指定度量
@return 调整的范围
*/
- (UIOffset)backButtonTitlePositionAdjustmentForBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED;
/**
调整 条形内边框条形按钮的垂直居中(返回按钮的)
@param adjustment 调整距离
@param barMetrics 指定度量
*/
- (void)setBackButtonBackgroundVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED;
/**
获取 条形内边框条形按钮的垂直居中调整的距离(返回按钮的)
@param barMetrics 指定度量
@return 调整的距离
*/
- (CGFloat)backButtonBackgroundVerticalPositionAdjustmentForBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED;
@end
#pragma mark - 弹出加载 <UIBarButtonItem 分类>
#pragma mark -
#if TARGET_OS_IOS
@interface UIBarButtonItem (SpringLoading) <UISpringLoadedInteractionSupporting>
@end
#endif
NS_ASSUME_NONNULL_END
#else
#import <UIKitCore/UIBarButtonItem.h>
#endif