如果我理解正确,您希望通过用户触发 albe 来触发两个不同的方法调用,这取决于用户拉动的程度。
我假设您要添加的 UiView 是“第二个标题”。它应该类似于“拉动刷新标题”。
我认为魔术还利用了 UIScrollView 委托。在许多示例中,您可以看到“Pull to ...”只是检查 scrollView.contentOffset.y
所以,你可能是这样的:
// 检查拉动刷新功能的代码(简化)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
if (self.scrollView.contentOffset.y <= - 65.0f) {}
}
- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (self.scrollView.contentOffset.y <= - 65.0f) {}
}
将其更改为:
- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
if ( -65.0f <= self.scrollView.contentOffset.y <= - 55.0f ) {
// give a area for checking the origin pull to refresh action
}
if (self.scrollView.contentOffset.y <= - 65.0f) {
// checking for ur function
}
}
- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if ( -65.0f <= self.scrollView.contentOffset.y <= - 55.0f ) {
// give a area for checking the origin pull to refresh action
}
if (self.scrollView.contentOffset.y <= - 65.0f) {
// checking for ur function
// add ur view the UIScrollView / TableView
// set ur scrollview offset to show ur whole form
[scrollView setContentOffset:CGPointMake(0, y)];
}
}
最后向你的表单按钮添加一个方法调用来做你想做的事情(删除表单并将scrollView内容偏移设置回(0,0))
(对不起,我说的不是概念,我不确定它是否有效)