【问题标题】:I got an uitoolbar bug when I change state of uiviews subviews.当我更改 uiviews 子视图的状态时,我遇到了一个 uitoolbar 错误。
【发布时间】:2013-10-01 15:21:34
【问题描述】:

基本思路,我需要在接收互联网数据时阻止用户交互。当我获得所有数据时,我需要取消阻止用户交互。取消阻止用户交互后,我的 UIToolBar 项目没有任何接触。

我创建了一个简单的代码来演示这种行为。

首先我创建了 UISplitViewController。在 DetailsViewController 上,我添加了 UIToolBar 和一项。

DetailViewController

- (void)viewDidLoad
{
  [super viewDidLoad];

  __block UIView *myView = self.view;
  dispatch_async(dispatch_get_main_queue(), ^{
    [AppDelegate setInteraction:NO onView:myView];
    [AppDelegate setInteraction:YES onView:myView];
 });
}

AppDelegate

+ (void)setInteraction:(BOOL)allow onView:(UIView *)aView {
 dispatch_async(dispatch_get_main_queue(), ^{
        [aView setUserInteractionEnabled:allow];
        for (UIView * v in [aView subviews]) {
            [self setInteraction:allow onView:v];
        }
 });
}

取消阻止用户交互后,我的 UIToolBar 项目没有任何接触。

【问题讨论】:

    标签: ios objective-c uiview uitoolbar


    【解决方案1】:

    在aView 的子视图中可能是您​​的工具栏,而不是栏按钮。 也许您可以添加一个清晰的背景遮罩视图来阻止交互并删除它以允许用户再次交互。

    【讨论】:

      【解决方案2】:

      我曾经在调用模态视图时发生过类似的事情。尝试在您的互联网代码之前存储工具栏项目,然后像这样恢复它们:

      NSArray *storeToolbarItems = self.toolbar.items;
      self.toolbar.items = nil;
      
      //Execute your code to disable/enable interaction and receive internet data
      //Once you have re-enabled user interaction... 
      [self.toolbar setItems:storeToolbarItems];
      

      【讨论】:

        猜你喜欢
        • 2021-02-05
        • 2019-07-24
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-05
        • 1970-01-01
        相关资源
        最近更新 更多