2016-06-16 20 views
-3

这里后隐藏的UIButton中的tableView。我按照下面的方式做,但仍然没有工作单元格显示按钮。我将如何做到这一点。如何在我创建了一个按钮,我想隐藏获得响应“1”之后的按钮此的tableView细胞得到一定的JSON响应

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { 

MyVideos *myvidoeclips = [park objectAtIndex:indexPath.row];  

UILabel *lbl2=(UILabel*)[cell viewWithTag:777]; 

NSString *stateus = [myvidoeclips valueForKey:@"state"]; 

    if([stateus isEqual: @"0"]){ 

    [lbl2 setText:@"Under Moderation"]; 
} 
if([stateus isEqual: @"1"]){ 

    [lbl2 setText:@"Published"]; 

} 
if([stateus isEqual: @"4"]){ 

    [lbl2 setText:@"Rejected"]; 
} 
lbl2.textColor=[UIColor whiteColor]; 

// Here is my button which i want to hide 


UIButton *button=[[UIButton alloc]initWithFrame:CGRectMake(216, 130, 64, 30)]; 
    NSString *strFlagValue = [[NSString alloc]init]; 

strFlagValue = [myvidoeclips valueForKey:@"state"]; 

if ([strFlagValue isEqualToString:@"1"]) 
{ 
    flag = true; 
} 
else 
{ 
    flag = false; 
} 

if (flag) 
{ 
    button.hidden = true; 
} 
else 
{ 
    button.hidden = false; 
} 




[button addTarget:self action:@selector(yourEditButtonClicked:) forControlEvents:UIControlEventTouchUpInside];  button.tag = indexPath.row; 
[button setImage:[UIImage imageNamed:@"btn-details.png"] forState:UIControlStateNormal]; 
[cell.contentView addSubview:button]; 


NSLog(@"sender.tag cell is%ld ",(long)button.tag); 
} 
+1

你能与我们分享代码? – iMHitesh

+0

@vicky - 从您的项目中制作所需全部代码的不同副本,将其压缩,上传到drive.google.com并共享URL以便下载到所有人。所以任何人都可以下载并给你一个解决方案。 – Hasya

回答

1

在cellForRowAtIndex检查标志。

标志为真或假,这取决于你的JSON响应(阵列/词典)

BOOL flag; 

NSString *strFlagValue = [[NSString alloc]init]; 

strFlagValue = [[array objectAtIndex:indexPath.row] valueForKey:@"Key_From_You_Get_1_Or_0"]; 

if ([strFlagValue isEqualToString:@"1"]) 
{ 
    flag = true; 
} 
else 
{ 
    flag = false; 
} 

if (flag) 
{ 
    cell.button.hidden = true; 
} 
else 
{ 
    cell.button.hidden = false; 
} 

另外检查在cellForRowAtIndex细胞必须是可重复使用的具有标识符。

如果你一定会得到“1”或“0”每从JSON(阵列)的时间。那么下面的排序代码就足够了。

BOOL flag = [[[array objectAtIndex:indexPath.row] valueForKey:@"Key_From_You_Get_1_Or_0"] boolValue]; 

cell.button.hidden = flag; 

所有的cellForRowAtIndexPath(逻辑你是在错误的方法写在你的问题)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"ID_CustomCell"; 

CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if(cell == nil){ 

    cell = (CustomCell *)[[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0]; 

    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
} 

BOOL flag = [[[array objectAtIndex:indexPath.row] valueForKey:@"Key_From_You_Get_1_Or_0"] boolValue]; 

cell.btn1.hidden = flag; 

NSString *strFlagValue = [[NSString alloc]init]; 

strFlagValue = [[array objectAtIndex:indexPath.row] valueForKey:@"Key_From_You_Get_1_Or_0"]; 

if ([strFlagValue isEqualToString:@"1"]) 
{ 
    flag = true; 
} 
else 
{ 
    flag = false; 
} 

if (flag) 
{ 
    cell.btn1.hidden = 1; 
} 
else 
{ 
    cell.btn1.hidden = 0; 
} 


return cell; 
} 
+0

是的细胞是可重复使用的,但如何检查国旗,我也得到正确的答复作为“1”只需要隐藏按钮 – vicky

+0

请参阅更新的答案。 – Hasya

+0

当strFlagValue显示“1”,在控制台为什么会出现标志=没有在平=真行@Hasya – vicky

0

对于静态表格单元格,创建的UIButton的一个IBOutlet和隐藏在使用JSON数据校核条件。

对于动态表格单元格,需要确定哪个按钮需要被隐藏的行号。

示例: - 有一个数组包含多个字典。

NSDictionary* dict = [array objectAtIndex:indexPath.row]; 
BOOL isButtonHidden = [dict objectForKey:@"KeyName"]; 
cell.button.hidden = isButtonHidden 

希望这个解决方案帮助you..Thanks

+0

我有一个威腾代码来创建按钮,如何将我创建@Neha – vicky

+0

出口可以提到它这样,这IBOutlet中连接到的tableview细胞中的情节提要/ XIB @property创建(弱,非原子)IBOutlet中的UIButton按钮* cancelButton;但请确保你使用的是静态tableview单元格 –

+0

不,它不是静态它是自定义无论如何感谢帮助@Neha – vicky

相关问题