iphone - iOS 中 UI 控件状态管理的设计模式

标签 iphone objective-c ios user-interface

类似于此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/

相关文章:

java - Objective C 和 Java 中的 Sha256 哈希

ios - NSArray 的大小

objective-c - NSView如何覆盖按钮?

ios - 从 HealthKit 监测心率 --> HKAnchoredObjectQuery 仅在 applicationDidBecomeActive 之后调用(BUG 或 FEATURE?)

iphone - 子类化 UITableViewCell,使删除按钮不显示

ios - 仅更改字体高度

iphone - Tomcat 不解码 URL 编码字符串

ios - 从 localizable.string(意大利语)本地化 ios 中的 HTML 文本字符串文件

ios - 启用方向锁定时检测设备的实际方向 (iOS)

iphone - iOS - 检测我是如何到达 viewController 的