3

我正在尝试做这样的事情:首先,在启动时,“接受”按钮被禁用,用户必须阅读文本视图区域中的条款和条件,然后将启用接受按钮。到目前为止,这是我的代码,有人可以给我一些建议吗?

- (IBAction)acceptAction:(id)sender {
    if ([self.termConditionTextView scrollsToTop] == true) {
        [acceptButtonOutlet setEnabled:NO];
        [[[UIAlertView alloc] initWithTitle:@"Term & Condition" message:@"Please read term &    condition first. Thank you." delegate:nil cancelButtonTitle:@"Back" otherButtonTitles:nil] show];
    } else {
        [acceptButtonOutlet setEnabled:YES];
    }
}
4

3 回答 3

6

创建按钮时,设置myButton.enabled = NO

为您的滚动视图设置UIScrollViewDelegate

然后实现scrollViewDidScroll委托功能。在函数中,检查滚动视图的内容偏移量以查看是否已到达底部。像这样的东西:

- (void)scrollViewDidScroll: (UIScrollView*)scrollView
{
    float scrollViewHeight = scrollView.frame.size.height;
    float scrollContentSizeHeight = scrollView.contentSize.height;
    float scrollOffset = scrollView.contentOffset.y;

    if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
    {
        myButton.enabled = YES;
    }
}
于 2012-08-13T21:24:22.250 回答
2

我会在 textview 底部(在它下方)有接受按钮,并将它们都包装在UIScrollView. 在这种情况下,用户必须滚动到底部才能接受。当然,您知道无论如何都没有人阅读文本。这是我过去实现此类功能的最简单方法。

于 2012-08-13T21:33:33.260 回答
0

我认为一个IBAction是不够的。你需要一个IBOutlet指向你的按钮,当你第一次加载视图时,你将它设置为disabled. 然后你可以通过实现协议和类似的东西来检查你的scrollview(或tableview相同的交易)是否处于底部: Is there a way to simulation a scrollViewDidScrollToBottom in UIScrollView? . 发生这种情况时,您将按钮更改为。UIScrollViewDelegateenabled

于 2012-08-13T21:07:55.793 回答