objective-c - 我的自定义网络浏览器中的加载/刷新按钮

标签 objective-c ios mobile-safari

所以我正在构建一个具有许多自定义功能的自定义网络浏览器,但我遇到了一些非常简单的问题。我有一个 NSTimer:

[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(checkLoad) userInfo:nil repeats:YES];

这是它调用的方法:

-(void)checkLoad{
    if (webView.loading) {
        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

        //add button to address bar
        UIButton *stopButton = [UIButton buttonWithType:UIButtonTypeContactAdd];

        stopButton.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
        [stopButton addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside];
        addressBar.rightView = stopButton;
        addressBar.rightViewMode = UITextFieldViewModeUnlessEditing;
    }
    else if (!(webView.loading)) {
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

        //add button to address bar
        UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeInfoDark];

        refreshButton.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
        [refreshButton addTarget:self action:@selector(refresh) forControlEvents:UIControlEventTouchUpInside];
        addressBar.rightView = refreshButton;
        addressBar.rightViewMode = UITextFieldViewModeUnlessEditing;
    }

}

按钮显示得很好,并且在页面加载或未加载时它们会发生变化。但与他们的互动却非常激烈。刷新按钮在大多数情况下都有效,但停止按钮几乎从不工作。我已经在 NSTimer 上调整了时间,让它变得更长或更短,但没有效果。

另外,我知道按钮图像是错误的,但这些只是占位符,直到我可以刷新并停止加载图像(如 safari 中的图像)。

有什么想法吗?我完全愿意做一些完全不同的事情来检测页面何时加载(这实际上是首选,因为如果我可以避免的话,我不希望 NSTimer 每 0.2 秒循环一次,但这是我能找到的唯一方法。

最佳答案

使用UIWebView的委托(delegate)方法有什么问题?请参阅UIWebViewDelegate .

设置每隔一小部分触发一次的计时器,以便您可以检查某些内容是否为“code smell” '.

关于objective-c - 我的自定义网络浏览器中的加载/刷新按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315338/

相关文章:

ios - Swift iOS -UrlSession 移动非常慢。有没有办法同时执行多个任务?

ios - Swift 编程约束不起作用

ios - 如何订购 NUnitLite 测试(用于集成测试)?

javascript - 移动浏览器 javascript : multiple setTimeouts or setIntervals

ios - 为什么 UITableView 的 NSMutableArray 数据在被 tableView 使用时丢失 :cellForRowAtIndexPath?

ios - 文本字段一个字符并自动更改到下一个文本字段?不起作用?

ios - "and"关键字在 Objective-C 中是什么意思?

Mobile WebKit 中的 CSS3 过渡变换

ios - 无法通过 https 播放 iPad <audio>

objective-c - 获取 Mavericks 中 "Displays have separate spaces"选项的值