您的位置:首页 > 产品设计 > UI/UE

UI04_Target-Action

2015-09-21 18:53 453 查看
AppDelegate.h

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end


AppDelegate.m

#import "AppDelegate.h"
#import "RootViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate
- (void)dealloc
{
[_window release];
[super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];

RootViewController *rootVC = [[RootViewController alloc] init];
self.window.rootViewController = rootVC;
[rootVC release];

return YES;
}


RootViewController.h

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController

@end


RootViewController.m

#import "RootViewController.h"
#import "MyButton.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColor whiteColor];

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[self.view addSubview:button];
button.frame = CGRectMake(100, 100, 150, 50);
button.layer.borderWidth = 1;
//  给按钮边框加上颜色
button.layer.borderColor = [UIColor purpleColor].CGColor;
[button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

//  创建MyButton
MyButton *myButton = [[MyButton alloc] initWithFrame:CGRectMake(100, 200, 150, 50)];
[self.view addSubview:myButton];
[myButton release];
myButton.layer.borderWidth = 1;

//  第六步: 调用addNewTarget: action:方法
[myButton addNewTarget:self action:@selector(test)];

}
- (void)test {
NSLog(@"测试");
}

- (void)click:(UIButton *)button {

}


MyButton.h

#import <UIKit/UIKit.h>

@interface MyButton : UIView

//  1. 写一个自定义的方法
- (void)addNewTarget:(id)target action:(SEL)action;

//  2. 用两条属性保存事件的委托者是谁, 委托的事是什么
@property(nonatomic, assign)id target;
@property(nonatomic, assign)SEL action;

@end


MyButton.m

#import "MyButton.h"

@implementation MyButton

- (void)addNewTarget:(id)target action:(SEL)action {
//  3. 用属性来保存两个参数的内容
self.target = target;
self.action = action;
}
//  4. 触发的方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//  5. 让myButton执行相应的方法
[self.target performSelector:self.action withObject:self];
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: