Mam UITableView z komórkami, które zawierają UILabel. Urządzenia UILabel mają niestandardowy zestaw narzędzi UIEdge. I podklasy z UILabel i ustawić UIEdgeInsets tak:UILabel z niestandardowym UIEdgeInsets obcięcie w UITableViewCell
override func drawText(in rect: CGRect) {
super.drawText(in: UIEdgeInsetsInsetRect(rect, insets))
}
override var intrinsicContentSize: CGSize {
var contentSize = super.intrinsicContentSize
contentSize.width += leftInset + rightInset
contentSize.height += topInset + bottomInset
return contentSize
}
Ale etykieta zostanie obcięty czasami, kiedy mam więcej linii w UILabel. Skonfigurowałem już wysokość wiersza na UITableViewAutomaticDimension i ustawiono szacunkowoRowHeight. Również ograniczenia są w porządku. Problem wydaje się być, gdy ustawienie UIEdgeInsets, ponieważ działa poprawnie, jeśli nie dostosuję go.
Prawdopodobnie powinienem powiedzieć komórce, aby zaktualizować wiązania po ustawieniu wypustek, ale nie mogłem tego zrobić do tej pory.
Ograniczenia, które dodano w scenopisie. Bottom
, Top
, i Trailing
są powiązane z widokiem (UITableViewCell). Wszystkie stałe ustawiona na 0.
W cellForRowAtIndexPath
kod jest w następujący sposób:
let cell = tableView.dequeueReusableCell(withIdentifier: "AnswersCell", for: indexPath) as! AnswerCell
cell.answerLabel.text = alternatives[indexPath.row]
return cell
Lucas mówisz etykieta zostanie obcięty tylko gdy masz więcej niż jedną linię na etykiecie? Po obcięciu przyjmuję, że masz na myśli odcięcie w poziomie przez dzielnik komórek - tzn. Komórka nie rozwija się prawidłowo, aby pomieścić dodatkową linię na etykiecie. Czy to jest poprawne? –
Podklasa etykiet zachowuje się właściwie dla mnie z samokwającymi się komórkami widoku tabeli, więc możesz chcieć udostępnić kod, którego używasz do konfigurowania komórek i widoków tabeli. – jamesk
@thecloud_of_unknowing Tak, ciąg nie pasuje do widoku. Nie zdarza się to przez cały czas, gdy mam więcej niż jedną linię. Wygląda na to, że nie bierze pod uwagę nowych ustawionych UIEdgeInsets. W niektórych przypadkach pasuje dobrze, ale inne mogą zostać obcięte, ponieważ spodziewają się większej przestrzeni. –