【问题标题】:ios next and previous buttonsios 下一个和上一个按钮
【发布时间】:2012-11-06 01:56:11
【问题描述】:

我有一个下一个按钮,当我到达数组的最后一个结果时我想消失,我希望我的上一个按钮在我到达数组的第一个结果时消失。我已经想出了如何在只找到一个结果时让它们消失。

联系人是数组。

下一个按钮:

        //button look
if (contacts != nil) { 
    if ([contacts count] > 1 ) [self.view addSubview:nextButton];

上一个按钮:

       //button look
if (contacts != nil) { 
    if ([contacts count] > 1 ) [self.view addSubview:previousButton];

我试过了

if ([contacts count] < (index-1)) [self.view addSubview:nextButton];

我收到此错误“指针和整数之间的有序比较 ('NSUInterger'(aka 'unsigned int') 和 'char * (*)(const char *,int)')”按钮在那里它只是没有' t 到达最后一个结果时消失。

任何帮助将不胜感激。

【问题讨论】:

  • nil 只是告诉它没有更多元素包含在数组中。你不能用来检查...尝试 objectAtIndex:0 和 objectAtIndex:[contacts count] - 1。
  • 我不明白你想做什么。如果[contacts count] &lt; (index-1),您是否要隐藏nextButton
  • 如果联系人计数

标签: ios nsarray


【解决方案1】:

听起来索引是NSUInterger。 count 是一个 int 并且 NSUInteger 是 typedef 到无符号整数。尝试将 index 更改为您将其设置为 int 或将其类型转换为 int 您使用它进行比较的地方。

关于按钮的部分,如果你的逻辑是正确的并且你试图从视图中删除“nextButton”,你可以像这样隐藏或从视图中删除它:

// To remove button
if ([contacts count] < (index-1)) [nextButton removeFromSuperview]; 

//To hide button
if ([contacts count] < (index-1)) nextButton.hidden = YES;

【讨论】:

  • 将索引更改为 int 并且错误消失了。现在它只是不会让按钮做他们应该做的事情。
  • 行得通。多谢!我改变了一点 if ([contacts count]
  • 很好,还请注意您可以在 if 语句中调用 contacts.count
【解决方案2】:

你永远不会从 superView 中删除它,所以它永远不会消失。您应该使用按钮的隐藏属性,即

[nextButton setHidden:NO];

如果您想隐藏它,请选择“是”。

错误可能来自索引实体,您是否将其转换为 NSUInterger?将其更改为 uint 或 int。 (只是发布有点晚,但这已在其他答案中提到:D)

【讨论】:

    【解决方案3】:
    if ([contacts objectAtIndex:[contacts count]-1])
     { 
        [self.view addSubview:nextButton];
    }
    if([contacts objectAtIndex:0)
    {
     [self.view addSubview:previousButton];
    }
    

    希望这会有所帮助...nil 只是告诉它没有更多元素包含在数组中。你不能用它来检查..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多