protocol的简单写法
//
// TouchView.h
// LessonUIControlAndSubClass #import <UIKit/UIKit.h> @class TouchView;
//1.制定协议,协议名字格式:类名+Delegate
@protocol TouchViewDelegate <NSObject> @optional
- (void)touchBegan:(TouchView *)touchView;
- (void)touchMoved:(TouchView *)touchView;
- (void)touchEnded:(TouchView *)touchView;
- (void)touchCancelled:(TouchView *)touchView; @end @interface TouchView : UIView //2.写属性,属性名delegate,类型是id,并且要遵守协议<类名Delegate>
@property (assign, nonatomic) id<TouchViewDelegate> delegate; @end
//
// TouchView.m
// LessonUIControlAndSubClass
// #import "TouchView.h" @implementation TouchView //3.一旦找到代理,让代理执行事情
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//判断delegate是否实现了某方法
if ([_delegate respondsToSelector:@selector(touchBegan:)]) {
[_delegate touchBegan:self];
}
} - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if ([_delegate respondsToSelector:@selector(touchMoved:)]) {
[_delegate touchMoved:self];
}
} - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if ([_delegate respondsToSelector:@selector(touchEnded:)]) {
[_delegate touchEnded:self];
}
} - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
if ([_delegate respondsToSelector:@selector(touchCancelled:)]) {
[_delegate touchCancelled:self];
}
} @end
protocol的简单写法的更多相关文章
- 使用Ext.Net时,配置文件的最简单写法
使用Ext.Net时,配置文件的最简单写法 <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配 ...
- html5滚动页面简单写法
html5滚动页面简单写法纵向滚动比较简单 直接在外面加个高度 然后overflow-y: auto; 横向比较复杂了外面写两层 最外面一层写个宽度 overflow-x: auto;第二层 写wid ...
- TFTP(Trivial File Transfer Protocol,简单文件传输协议)
TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小.这时候有人可能会纳闷,既 ...
- PHP去重的简单写法
PHP去重的简单写法用array_flip实现去重效果 <pre><?php$arr =array("a"=>"a1","b& ...
- Google Protocol Buffer 简单介绍
以下内容主要整理自官方文档. 为什么使用 Protocol Buffers .proto文件 Protocol Buffers 语法 编译.proto文件 Protocol Buffers API 枚 ...
- linux IPC socket(3)server简单写法
写server的一些流程总结 一.向内核申请一个socket TCP形式 sock_fd = socket(AF_INET, SOCK_STREAM, ); UDP形式 sfd = socket(AF ...
- foreach循环的简单写法
简单的foreach循环写法: pickedItems.ForEach(item => { this.List.Remove(item); }); //注意,List 必须和pickedItem ...
- javascript模块简单写法
写法1: (function (wd, doc) { var mw = {}; mw.noConflict = noConflict; var _$ = wd.$; wd.$ = mw; functi ...
- WPF之Binding的三种简单写法
环境 类代码 public class Person:INotifyPropertyChanged { private string name; public string Name { get { ...
随机推荐
- tableLayoutPanel的使用
https://msdn.microsoft.com/en-us/library/ms171687(v=vs.110).aspx Controls in a TableLayoutPanel cont ...
- 如何在IamgeButton上面添加文字
如何在IamgeButton上面添加文字? 首先要知道,IamgeButton是不可以直接添加文字的.所以我们需要间接制作一个Button按钮 我的代码将会展示另外一个例子,与本文中的代码相似. 本文 ...
- Maven教程
找了一个很详细的maven教程 收藏下 学习网址:http://www.yiibai.com/maven/
- public private, protect. 以及继承。 草稿。
#include <iostream>#include <thread>#include <memory> // | 父类的public成员 | 父类的protec ...
- 为什么JAVA的垃圾回收机制无法避免内存泄漏
一.本文参考: 1.<深入理解java虚拟机 JVM高级特性与最佳实践> 2.http://coderevisited.com/memory-leaks-in-java/ ...
- PHP 知识结构
- PHP简单文件上传
一个简单的PHP上传文件的例子: upload.html <html> <body> <form action="upload.php" method ...
- ubuntu16.04中将python3设置为默认
直接执行这两个命令即可: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo upd ...
- VB关闭其他进程的输入法
http://files.cnblogs.com/files/liuzhaoyzz/%E5%85%B3%E9%97%AD%E5%85%B6%E4%BB%96%E8%BF%9B%E7%A8%8B%E8% ...
- tab,tabCon里放很多div,点击左右滑动一个。可根据初始化清除空的tabCon。
效果如上,左右箭头点击,相应左右滑动一个功能菜单的长度,点击BTN2时若所有功能菜单没溢出就不显示箭头不允许左右滑动. 可根据初始化功能菜单的个数,判断.若某个tabCon没有内容,则删除相应tabC ...