QMUISegmentedControl

@interface QMUISegmentedControl : UISegmentedControl

/// 获取当前的所有 segmentItem,可能包括 NSString 或 UIImage。
@property(nonatomic, copy, readonly) NSArray *segmentItems;

/**
 * 重新渲染 UISegmentedControl 的 UI,可以比较大程度地修改样式。比如 tintColor,selectedTextColor 等等。
 *
 * @param tintColor             Segmented 的 tintColor,作用范围包括字体颜色和按钮 border
 * @param selectedTextColor     Segmented 选中状态的字体颜色
 * @param fontSize              Segmented 上字体的大小
 */
- (void)updateSegmentedUIWithTintColor:(UIColor *)tintColor
                     selectedTextColor:(UIColor *)selectedTextColor
                              fontSize:(UIFont *)fontSize;

/**
 * 用图片而非 tintColor 来渲染 UISegmentedControl 的 UI
 *
 * @param normalImage               Segmented 非选中状态的背景图
 * @param selectedImage             Segmented 选中状态的背景图
 * @param devideImage00             Segmented 在两个没有选中按钮 item 之间的分割线
 * @param devideImage01             Segmented 在左边没选中右边选中两个 item 之间的分割线
 * @param devideImage10             Segmented 在左边选中右边没选中两个 item 之间的分割线
 * @param textColor                 Segmented 的字体颜色
 * @param selectedTextColor         Segmented 选中状态的字体颜色
 * @param fontSize                  Segmented 的字体大小
 */
- (void)setBackgroundWithNormalImage:(UIImage *)normalImage
                       selectedImage:(UIImage *)selectedImage
                       devideImage00:(UIImage *)devideImage00
                       devideImage01:(UIImage *)devideImage01
                       devideImage10:(UIImage *)devideImage10
                           textColor:(UIColor *)textColor
                   selectedTextColor:(UIColor *)selectedTextColor
                            fontSize:(UIFont *)fontSize;
@end

Undocumented

  • 获取当前的所有 segmentItem,可能包括 NSString 或 UIImage。

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSArray *segmentItems;

    Swift

    var segmentItems: [Any]! { get }
  • 重新渲染 UISegmentedControl 的 UI,可以比较大程度地修改样式。比如 tintColor,selectedTextColor 等等。

    Declaration

    Objective-C

    - (void)updateSegmentedUIWithTintColor:(UIColor *)tintColor
                         selectedTextColor:(UIColor *)selectedTextColor
                                  fontSize:(UIFont *)fontSize;

    Swift

    func updateSegmentedUI(withTintColor tintColor: UIColor!, selectedTextColor: UIColor!, fontSize: UIFont!)

    Parameters

    tintColor

    Segmented 的 tintColor,作用范围包括字体颜色和按钮 border

    selectedTextColor

    Segmented 选中状态的字体颜色

    fontSize

    Segmented 上字体的大小

  • 用图片而非 tintColor 来渲染 UISegmentedControl 的 UI

    Declaration

    Objective-C

    - (void)setBackgroundWithNormalImage:(UIImage *)normalImage
                           selectedImage:(UIImage *)selectedImage
                           devideImage00:(UIImage *)devideImage00
                           devideImage01:(UIImage *)devideImage01
                           devideImage10:(UIImage *)devideImage10
                               textColor:(UIColor *)textColor
                       selectedTextColor:(UIColor *)selectedTextColor
                                fontSize:(UIFont *)fontSize;

    Swift

    func setBackgroundWithNormalImage(_ normalImage: UIImage!, selectedImage: UIImage!, devideImage00: UIImage!, devideImage01: UIImage!, devideImage10: UIImage!, textColor: UIColor!, selectedTextColor: UIColor!, fontSize: UIFont!)

    Parameters

    normalImage

    Segmented 非选中状态的背景图

    selectedImage

    Segmented 选中状态的背景图

    devideImage00

    Segmented 在两个没有选中按钮 item 之间的分割线

    devideImage01

    Segmented 在左边没选中右边选中两个 item 之间的分割线

    devideImage10

    Segmented 在左边选中右边没选中两个 item 之间的分割线

    textColor

    Segmented 的字体颜色

    selectedTextColor

    Segmented 选中状态的字体颜色

    fontSize

    Segmented 的字体大小