• 自定义代理


    自定义代理的使用比较频繁,掌握之后可使编程更加灵活。

    代理类DaiLi

    DaiLi.h

    #import <UIKit/UIKit.h>
    //自定义代理
    @protocol DaiLiDelegate <NSObject>
    //代理方法
    - (void)change;
    
    @end
    
    @interface DaiLi : UIView
    
    @property(nonatomic,strong)UIButton *btn;
    
    @property(nonatomic,strong)id <DaiLiDelegate>delegate;
    
    @end

    DaiLi.m

    #import "DaiLi.h"
    
    @implementation DaiLi
    @synthesize btn;
    
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self)
        {
            btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 50)];
            //初试按钮颜色为红色
            btn.backgroundColor = [UIColor redColor];
            [btn addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchUpInside];
            [self addSubview:btn];
        }
        return self;
    }
    
    - (void)clicked
    {
        //点击方法中将按钮颜色变为黑色
        btn.backgroundColor = [UIColor blackColor];
        //代理方法
        [self.delegate change];
    }
    @end

    代理的实现类ViewController

    ViewController.m

    #import "ViewController.h"
    #import "DaiLi.h"
    
    @interface ViewController ()<DaiLiDelegate>
    {
        DaiLi *daiLi;
    }
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        daiLi = [[DaiLi alloc]initWithFrame:CGRectMake(20, 100, self.view.frame.size.width-40, 100)];
        daiLi.delegate = self;
        [self.view addSubview:daiLi];
    }
    //代理方法的实现
    - (void)change
    {
        //此处讲按钮颜色变为黄色
        daiLi.btn.backgroundColor = [UIColor yellowColor];
    }
    
    @end

    点击按钮我们会发现,结果并不是按钮点击方法中的将按钮变为黑色。这是因为在代理的实现方法里再次改变了按钮的颜色,使其变为黄色。

  • 相关阅读:
    Quit Procrastinating! 20 Ways to Energize Out of Your Slump
    [转]会让你人生失败的31种原因
    Control Panel Applets
    MemTest
    The server at www.abstractspoon.com is taking too long to respond.
    拖延者 <<拖延心理学>>
    [转]How to Uninstall Windows Movie Maker
    经典街机
    Causes and Cures for Procrastination
    给页面添加关键词和简介
  • 原文地址:https://www.cnblogs.com/fanzhiying/p/5085132.html
Copyright © 2020-2023  润新知