stackoverflow 上讲解:http://stackoverflow.com/a/12660523/4563358
delegate是将需要处理交给自己的代理。
在自己的对应的类中.h文件中申明对应的delegate
@class CSPopMenu; @protocol CSPopMenuDelegate <NSObject> @optional -(void)PopMenuDimiss:(CSPopMenu *)popMenu; @end
插入一个可选择的方法,定义一个协议。
@property(nonatomic,weak)id <CSPopMenuDelegate> delegate;
delegate属性设定。
在类的.m文件中
-(void)dismiss { if ([self.delegate respondsToSelector:@selector(PopMenuDimiss:)]) { [self.delegate PopMenuDimiss:self]; } [self removeFromSuperview]; }
调用对应的delegate的方法。
要对这个类进行相关的操作,那么首先你要成为这个类的一个代理
CSPopMenu *menuView= [[CSPopMenu alloc]initWithContentView:menuTableView]; menuView.popMenuPosition = CSPopMenuBackgroundleft; [menuView showRect:CGRectMake(100, 100, 100, 100)]; menuView.delegate = self;
把当前的类成为对应的类的一个代理。
然后就可以调用代理方法
//设置对应的转动的方向 -(void)PopMenuDimiss:(CSPopMenu *)popMenu { CSMainBtn *mainBtn = (CSMainBtn *)self.navigationItem.titleView; [mainBtn setImage:[UIImage imageNamed:@"navigationbar_arrow_down"] forState:UIControlStateNormal]; }
得到的效果如图
使得首先右边的箭头改变方向。
时间: 2024-10-24 02:57:58