2010-11-22 18 views
2

Ich muss programmgesteuert eine Schaltfläche erstellen und einen Bildhintergrund auf diese Schaltfläche festlegen. Es gibt eine Bedingung, ich möchte diesen Knopf verstecken und eine UITableViewCellAccessoryDetailDisclosureButton zeigen, aber ich weiß nicht wie.wie programmatisch eine Schaltfläche auszublenden

Der Knopf ist noch sichtbar und der UITableViewCellAccessoryDetailDisclosureButton fällt darauf.

Hier ist mein Code:

if (filemodels.fileType == @"project" && filemodels.fileExpanse == @"none") { 
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 

    NSLog(@"open expanse"); 
    //[displayBut isHidden]; 
    //displayBut.hidden = YES; 
    //[displayBut setImage:nil forState:UIControlStateNormal]; 
    displayBut.alpha = 0.0; 

} 

Kann jemand helfen?

Update:

In Bezug auf Vladimir ‚s Antwort. Ich habe es nach seinem Vorschlag geändert, aber der Knopf versteckt sich immer noch nicht.

Der Code ist wie folgt:

if ([filemodels.fileType isEqualToString:@"project"] && [filemodels.fileExpanse isEqualToString:@"none"]) { 

    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 
    [cell.contentView addSubview:nil]; 
    [displayBut setHidden:YES]; 
    [displayBut setBackgroundImage:nil forState:UIControlStateNormal]; 

} 
+0

Verwenden Sie bitte Kommentare oder aktualisieren Sie Ihre Frage, wenn Sie weitere Informationen abrufen oder bereitstellen müssen. Verwenden Sie keine Antworten für diesen Zweck. Vielen Dank. – Kev

+0

Ich würde auch die Schaltfläche deaktiviert werden ('displayBut.enabled = FALSE') – LordT

+0

@Kev, danke –

Antwort

1

[Zusammengeführtes Update/Frage als Antwort in OP]

2

Das erste Problem mit Ihrem Code ist if-Zustand - Sie vergleichen nicht die String-Werte, aber Zeigerwerte und so nicht richtig Ergebnis. Der richtige Weg Strings in Ihrem Fall zu vergleichen ist -isEqualToString: Methode zu verwenden:

if ([filemodels.fileType isEqualToString:@"project"] && [filemodels.fileExpanse isEqualToString:@"none"]){ 
... 

Dann, wenn Sie zuvor Ihre Zelle accessoryView gesetzt ein displayBtn sein, dann können Sie es festlegen müssen auf Null Zelle Verwendung accessoryType machen statt Ihre benutzerdefinierte Ansicht - nur das Ausblenden ist hier möglicherweise nicht ausreichend.

Verwandte Themen