2012-01-06 15 views
26

Chcę zrobić coś podobnego do strony ustawień Wi-Fi: po dotknięciu komórki tabeli zaznacz pole wyboru po lewej stronie komórki i zobacz przycisk akcesorium prawo, aby pokazać więcej szczegółów.Umieść znacznik wyboru po lewej stronie ekranu UITableViewCell

Moje pytanie: czy istnieje sposób umieszczenia znacznika wyboru po lewej stronie obiektu UITableViewCell bez budowania niestandardowego obiektu UITableViewCell?

+1

Odpowiedź na Twoje pytanie brzmi: „Nie”. – EmptyStack

Odpowiedz

120

Odpowiedź brzmi TAK! Nie musisz do tego tworzyć niestandardowej komórki ani dodawać widoków obrazów. Aby zasymulować zaznaczenia, musisz tylko dodać symbol kodu Unicode do stanu pola wyboru do tekstu komórki.

Symbole kodu Unicode, których używam dla pól wyboru, to: \u2705 dla zaznaczonych i \u2B1C dla niezaznaczonych (prawie to samo co \U0001F533 dla iOS 5). iOS renderuje kilka unicode symbols as icons.

Oto kilka innych symboli:

enter image description here

@"\u2611", @"\u2B1C", @"\u2705", @"\u26AB", @"\u26AA", @"\u2714", @"\U0001F44D", @"\U0001F44E" 

naśladując stronę ustawień Wi-Fi (z UITableViewCellStyleValue1):

enter image description here

cell.textLabel.text = @"\u2001 Wi-Fi 1"; 
cell.detailTextLabel.text = @"\U0001F512 \u268A"; 

cell.textLabel.text = @"\u2001 Wi-Fi 2"; 
cell.detailTextLabel.text = @"\U0001F512 \u268C"; 

cell.textLabel.text = @"\u2713 Wi-Fi 3"; 
cell.detailTextLabel.text = @"\U0001F513 \u2630"; 
+0

Widzę pierwszy wpis, w którym jedna jest idealną odpowiedzią, a reszta ma niskie głosy ... –

+1

Nawiasem mówiąc, w Swift, musisz użyć nawiasów klamrowych dla znaków Unicode: "\ u {2713} " –

+0

Co ze zmianą wyboru i mam źródło danych? Czy muszę za każdym razem czytać źródło danych, aby zaznaczyć i dołączyć znacznik wyboru? Nie mogę użyć detailtextlabel, ponieważ używam tego do wyświetlania innych informacji .. –

-2

Nie. Musisz utworzyć niestandardową komórkę dla tego.

+2

Jest to możliwe bez niestandardowej komórki. –

-4

Powinieneś spojrzeć na UITableViewCell reference and Table View Guide. Użyj standardowego stylu komórki z właściwością editingAccessoryType ustawioną na UITableViewCellAccessoryCheckmark.

+1

Możesz również użyć niestandardowego widoku –

+6

Zgodnie z dokumentacją: UITableViewCellAccessoryCheckmark Komórka ma znacznik wyboru po prawej stronie. Pytanie pojawia się po lewej stronie – akshay1188

6

Oczywiście można to zrobić :) Na przykład użyć UITableViewCellStyle

UITableViewCellStyleDefault, 
// Simple cell with text label and optional image view 
//(behavior of UITableViewCell in iPhoneOS 2.x) 

... i umieścić niestandardową „zaznaczenia” obraz „w tym opcjonalnym widzenia obrazu”.

0

Oto sposób na zrobienie tego. Umieść UIImageView na lewej krawędzi komórki. Nie ustawić zdjęcie tak to puste jako początek.

Następnie zakładając robisz komórkę zwyczaj i klasę dla tej UITableViewCell, zrób coś takiego:

import UIKit 

class MyCustoTableViewCell: UITableViewCell { 

    @IBOutlet weak var commandOption: UILabel! 
    @IBOutlet weak var checkMarkImage: UIImageView! 

    // Sets a left side checkmark on a cell when selected 
    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 
     self.checkMarkImage.image = selected ? UIImage(named: "BlueCheck") : .None 
     self.commandOption.font = selected ? UIFont(name: "Avenir-Heavy", size: 22) : UIFont(name: "Avenir-Book", size: 22) 

     // more check mark on the right side 
     // self.accessoryType = selected ? .Checkmark : .None 
    } 
} 

Uwaga dno wykomentowane jest, jeśli chcesz znacznik po prawej stronie. W super.setSelecdted metoda pożary gdy użytkownik zastukał w komórce tabeli. Upewnij się, że ten realizowany również:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     // do any changes needed here or leave blank if just adding check 
    } 
} 

Wreszcie, upewnij się, że @ 2x i 3x @ znacznik wyboru PNG aktywów w folderze Assets. Uwaga te są nazywane „BlueCheck” w tym przykładzie jednak wykorzystać to, co kiedykolwiek twoje aktywa znacznik wyboru są nazywane.

Takie podejście zapewnia, że ​​gdy użytkownik wybierze nowy wiersz znacznik wyboru odchodzi od bieżącej komórki.

W tym przypadku jestem pogrubienie tekstu, który znajduje się po prawej stronie widoku obrazu do wskazują ponadto, że był wybrany rząd.

0

w Swift można nacisnąć klawisz Command + Ctrl + Spacja, aby pokazać emotikonów i znaków specjalnych lub można skopiować ten ✓ ✔️

Powiązane problemy