我有一个名为ToolbarView的类,它是UIView的子类,基本上创建了一个UIView,它顶部有一个消失/重新出现的UIToolbar.我还有一个名为DraggableToolbarView的ToolbarView子类,使用户可以在屏幕上拖动视图.
我需要为ToolbarView创建一个委托,以便它可以在工具栏重新出现和消失时通知另一个对象/类.我还需要创建一个委托,DraggableToolbarView以便在拖动视图时通知另一个对象/类.DraggableToolbarViews委托还需要在工具栏重新出现和消失时通知另一个对象/类.
所以我决定实现ToolbarViewDelegate,让DraggableToolbarViewDelegate继承它并拥有自己的方法,如下所示:
ToolbarView.h
#import <UIKit/UIKit.h>
@protocol ToolbarViewDelegate;
@interface ToolbarView : UIView <UIGestureRecognizerDelegate>
{
id <ToolbarViewDelegate> _toolbarViewDelegate;
}
@property(nonatomic, assign) id <ToolbarViewDelegate> toolbarViewDelegate;
@end
Run Code Online (Sandbox Code Playgroud)
ToolbarView.m
#import "ToolbarView.h"
#import "ToolbarViewDelegate.h"
...
- (void) showBars
{
...
if (self.toolbarViewDelegate)
{
[self.toolbarViewDelegate toolbarViewWillShowToolbar:self];
}
...
}
- (void) hideBars
{
...
if (self.toolbarViewDelegate)
{
[self.toolbarViewDelegate toolbarViewWillHideToolbar:self];
}
...
}
Run Code Online (Sandbox Code Playgroud)
ToolbarViewDelegate.h
@class ToolbarView;
@protocol ToolbarViewDelegate
@required
- (void) toolBarViewWillShowToolbar:(ToolbarView *)toolbarView;
- (void) toolBarViewWillHideToolbar:(ToolbarView *)toolbarView;
@end
Run Code Online (Sandbox Code Playgroud)
DraggableToolbarView.h
#import"ToolbarView.h"
@protocol DraggableToolbarViewDelegate;
@interface DraggableToolbarView : …Run Code Online (Sandbox Code Playgroud)