【问题标题】:simple uiview change not working简单的uiview更改不起作用
【发布时间】:2012-05-29 02:52:13
【问题描述】:

我正在尝试仅做一个简单的视图更改以进行概念验证。

这里是代码

- (void)swipedScreen
{
    if (self.secondView.superview == nil) {
        [myView removeFromSuperview];
        [self.view insertSubview:secondView atIndex:0];
    }
}

当我滑动屏幕时,会发生什么情况是视图区域变黑...并且变得无响应。

我从一个 navigatoin 应用程序开始,将 tableview 替换为一个标准的 uiviewcontroller 类。效果很好。然后我添加了 secondView(仅限 xib)并更改了它的类以匹配第一个视图的 viewcontroller。

我发现这很困难的原因是因为我试图在导航控制器内为视图设置动画,而不是像我习惯的那样将整个视图推送到堆栈上。

【问题讨论】:

  • 如果只是为了测试目的,把整个XCode项目搭建起来会更容易解决问题。
  • 我该怎么做?还是您只是说添加所有代码?还是真的把它放在某个地方下载?
  • 只需将文件压缩并放在互联网上的某个位置,以便我们可以下载、检查和调试它。
  • 好的,把它放到我的投递箱里,这是链接。 dl.dropbox.com/u/53813770/SMPrototype.zip 非常感谢您的帮助。

标签: iphone ios uiview uiviewcontroller uinavigationcontroller


【解决方案1】:

我敢打赌,空白的无响应视图实际上是您的 secondView 对象。我总是通过设置[secondView setBackgroundColor:[UIColor greenColor]] 并检查是否真的出现了巨大的绿色矩形来进行测试。

编辑:查看您的代码后,出现了多个问题:

  1. 您实际上从来没有 +alloc-init 任何东西。
  2. 您从未真正触摸过这些笔尖或在代码中引用它们
  3. 您将两个 UIView 声明为 IBOutlets 和 Strong(两个完全相反,因为 IBOutlets 是 __weak、__unsafe_unretained 或 assign),但不要将它们链接到任何东西。

我冒昧地对其进行了修改(无笔尖)。 Take a look.

【讨论】:

  • 当..我希望这就是问题所在!但是没有仍然变黑...我认为这与我加载第一个视图的方式有关..这发生在我的 appDelegate 内部,因为它是一个模板导航应用程序 //appdelegate MasterViewController *masterViewController = [[MasterViewController alloc ] initWithNibName:@"MasterViewController" bundle:nil];
  • @C.Johns 在这里,我冒昧地修改了您的代码。那就去吧:Dropbox Download
  • 对,所以你在这里制作了程序化笔尖或其他东西?我仍在检查您的代码以弄清楚您是如何做到的。一件有趣的事情是 uilabel 在视图之间保持不变...不知道为什么会这样?非常感谢您的帮助!它非常感谢,我不想从中学习。 :P
  • 不,我在代码中制作了 UIViews。永远不要永远从笔尖加载 UIView。继承 UIView 并从那里加载你的对象。
  • 哈哈,好吧,伙计!我只是让业力之神以你的方式发送一堆业力! :P
【解决方案2】:

您是否初始化了 secondView?如果是 init,你可以尝试为 secondView 设置框架

【讨论】:

  • 不,我没有初始化,但是我已经在 .h 文件中声明了它们。这意味着我还需要初始化吗?如果是这样,你怎么做.. 我习惯于用通常的类名 *newname = [[classname alloc] init] 初始化我没有在 .h 文件中声明的视图;但有了这个它不会让我。
  • 我的错.. secondView = [[UIView alloc] init];现在试试。
  • 好的,所以仍然没有解决任何问题。它直到变黑并且没有反应..
【解决方案3】:

您在堆栈底部插入视图,

[self.view insertSubview:secondView atIndex:0];

尝试改用 addSubview。您还需要在某处设置视图框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多