< UIKit >

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

上一篇 下一篇

猜你喜欢

热点阅读