0

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

联系人是数组。

下一个按钮:

        //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'(又名'unsigned int')和'char *(*)(const char *,int)')”按钮在那里它只是不会消失它得到了最后的结果。

任何帮助将不胜感激。

4

3 回答 3

0

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

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

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

或者

//To hide button
if ([contacts count] < (index-1)) nextButton.hidden = YES;
于 2012-11-05T16:32:13.897 回答
0

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

[nextButton setHidden:NO];

或者是,如果你想隐藏它。

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

于 2012-11-05T16:47:35.697 回答
0
if ([contacts objectAtIndex:[contacts count]-1])
 { 
    [self.view addSubview:nextButton];
}
if([contacts objectAtIndex:0)
{
 [self.view addSubview:previousButton];
}

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

于 2012-11-05T16:48:46.817 回答