iOS 自定义UIButton

工作中有一个点击button更新button上文案的需求,用自定义了button可以很简单的实现的这个需求

首先写个自定义的button

CustomButton.h

#import <UIKit/UIKit.h>

typedef NS_ENUM(NSUInteger, CustomButtonStatus){
    CustomButtonStatusNormal = 0,
    CustomButtonStatusReverse = 1
};

@interface CustomButton : UIButton

@property(nonatomic) CustomButtonStatus buttonStatus;

@end

CustomButton.m

#import "CustomButton.h"

@implementation CustomButton

- (void)setButtonStatus:(CustomButtonStatus)buttonStatus{
    NSString *title;
    if (CustomButtonStatusNormal == buttonStatus) {
        title = @"啊啊啊";
    } else if(CustomButtonStatusReverse == buttonStatus){
        title = @"哦哦哦";
    }
    [self setTitle:title forState:UIControlStateNormal];
    _buttonStatus = buttonStatus;

}
@end

调用

#import "ViewControllerTest.h"
#import "CustomButton.h"

@interface ViewControllerTest () {
    CustomButton *button;
}

@end

@implementation ViewControllerTest

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];

    button = [CustomButton buttonWithType:UIButtonTypeCustom];
    [button setButtonStatus:CustomButtonStatusNormal];
    [button setFrame:CGRectMake(200, 80, 86, 42)];
    [button addTarget:self action:@selector(customButtonClick:) forControlEvents:UIControlEventTouchUpInside];
    [button setBackgroundColor:[UIColor redColor]];
    [self.view addSubview:button];

}

-(void) customButtonClick: sender{
    button.buttonStatus = !button.buttonStatus;
}

时间: 2024-10-06 00:41:06

iOS 自定义UIButton的相关文章

IOS 自定义UIBUTTON 直接拖个xib 就能在button上显示多行文本 并且添加了点击的效果

拖个button继承一下  几行代码 就搞定 自用效果还行 IOS 自定义UIBUTTON 直接拖个xib 就能在button上显示多行文本 并且添加了点击的效果,布布扣,bubuko.com

iOS 自定义TabBarController zhuanzai

iOS 自定义TabBarController 一.自定义的思路 iOS中的TabBarController确实已经很强大了,大部分主流iOS应用都会采用.但是往往也不能满足全部的需求,因此需要自定义TabBar,自定义需要对系统的TabBar工作方式有很好的理解,自定义需要勇气. 自定义TabBar的原则:尽量利用系统自带TabBar,只改需要改的地方. 二.自定义TabBar的总体过程 1.先把自带的TabBar条给取消了 2.自己做一个view,上面放几个按钮,设定按钮的点击事件.并设置s

iOS 中UIButton的 settitle 和 titlelabel的使用误区

UIButton中设置Titl方法包括以下几种: - (void)setTitle:(NSString *)title forState:(UIControlState)state; - (void)setAttributedTitle:(NSAttributedString *)title forState:(UIControlState)state @property(nonatomic,readonly,retain) NSString *currentTitle; @property(n

自定义UIButton及注意点

一.自定义UIButton /* 调整Button内部子控件的步骤 1.自定义Button 2.调整位置 1>重写两个方法:titleRectForContentRect:和imageRectForContentRect: 2>重写layoutSubviews: 先调用super方法.之后自己调整frame 3.如果需要设置imageView和titleLabel的属性时,在initWithFrame:方法设置 */ // 1.创建UIButton对象 XMGButton *btn = [XM

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个

iOS自定义转场动画实战讲解

iOS自定义转场动画实战讲解 转场动画这事,说简单也简单,可以通过presentViewController:animated:completion:和dismissViewControllerAnimated:completion:这一组函数以模态视图的方式展现.隐藏视图.如果用到了navigationController,还可以调用pushViewController:animated:和popViewController这一组函数将新的视图控制器压栈.弹栈. 下图中所有转场动画都是自定义的

iOS自定义tabbar后popToRootViewContriller和poptoviewcontroller时出现两个tabbar 的解决办法

iOS自定义tabbar后popToRootViewContriller和poptoviewcontroller时出现两个tabbar  的解决办法 问题:iOS自定义tabbar后popToRootViewContriller和poptoviewcontroller时出现两个tabbar 1.自定义代码: - (void)viewWillAppear:(BOOL)animated { [super  viewWillAppear:animated]; // 删除系统自动生成的UITabBarB

IOS 自定义 滑动返回 手势

/** 只需要在你自定义的导航控制器中,改成如下代码即可,自定义手势返回 */ #define KEY_WINDOW [[UIApplication sharedApplication] keyWindow] #define kScreenW KEY_WINDOW.bounds.size.width #define kAnimateDuration 0.3 #define kDefaultAlapa 0.5 #define kDefaultScale 0.95 #define iOS7 ([UI

IOS开发—IOS自定义任意位置右滑POP视图控制器

IOS自定义任意位置右滑POP视图控制器 IOS7.0之后系统提供了原生的从左边缘滑动pop出栈的方法,也可以自定义左边缘pop出栈,将在下一篇介绍,本篇介绍通过添加手势的方法实现IOS当前屏幕任意位置(非指定左边缘)右滑pop视图控制器出栈.代码如下: // // LXXPopViewController.m // 任意点右滑Pop // // Created by Lotheve on 15/6/12. // Copyright (c) 2015年Lotheve. All rights re