类似于此question ,但我正在寻找通用解决方案或设计模式或框架。
问。如何在我的 iOS 应用程序中自动将状态管理添加到所有 UI 控件中,而无需重写现有控件的类?
例子:
例如当我点击一个 UIButton
时,它会创建一个新的 UIWebView
来显示 Google 主页。这很简单,但是当用户有时会出现问题......点击按钮只是太快,所以会显示两个 WebView 。
为了解决这个问题,我需要制作一个包含 webview 的单例类,并有一个状态变量 isOpended
如果它是真的,重用现有的 webview 而不是创建一个新的.
但问题是:如果我想在其他控件中也有这种行为,那么我将需要创建许多单例类。我只是在想是否有更好的方法来处理这个问题而无需重新发明新的轮子。
谢谢。
最佳答案
我认为您在这里解决了错误的问题。为什么不在 UIWebView 完成处理之前禁用按钮。这样用户就不能点击它两次。
- (IBAction)showMapHomepage:(UIButton*)sender
{
sender.enabled = NO;
[self taskThatTakesALongTimeWithCompletion:^{
sender.enabled = YES;
// Finish processing
}];
}
关于iphone - iOS 中 UI 控件状态管理的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872421/