第一篇博客果断写些简单无脑的东西。略水。
网上的教程大多是使用xib,实在过时,写点storyboard的东西来造福人类。(虽然自己也是一知半解
点击某些view,(如按钮等)在storyboard里的connections inspector中有这些响应,按照官方教程的做法按住control点击右边的圆圈后拖动到代码页即可生成响应函数。如图
注意,左边有圆圈的Action,则是与storyboard进行了链接,在对storyboard上布局的按钮等控件点击后则会跳到这些响应。
若在storyboard中删除了控件后,左边的实心圆圈将会变成空心圆圈,届时应该将这些无用的函数删除。
如果不用storyboard,使用纯代码布局,应该使用如下函数进行连接。
[btn1 addTarget:self action:@selector(methodname:) forControlEvents:UIControlEventTouchUpInside];
上方的forControlEvents可以是第一张图里的任意一种。因为selector的存在,被连接的函数应该也是如下格式。
- (IBAction) name: (id)sender
下面对各种event进行说明:
touch down:按下按钮的一瞬间触发
touch cancel:目测按钮是不会触发这个event的
touch down repeat:双击按钮的时候触发(同时也会触发两次touch down)
touch drag enter,touch drag exit,touch drag inside,touch drag outside:
这四个比较错综复杂,当你在按下按钮不松开时,触发了touch down,之后一直不松开,拖动时会触发touch drag inside(很多次),拖出按钮范围的瞬间会触发touch drag exit,之后在按钮外部拖动会触发touch drag outside(很多次),之后再拖进按钮范围的瞬间会触发touch drag enter
drag时的按钮范围的判定比touch的要大很多,就是说,仅仅拉出按钮范围是不会触发touch drag outside的,要拉得更远才行。
touch up inside:按下按钮后,在按钮内部松开
touch up outside:按下按钮后,在按钮外部松开