Hoe kan ik een aangepaste UITableViewCell opnieuw formatteren tijdens de bewerkingsmodus om besturingselementen voor verwijderen te kunnen gebruiken?

Ik heb een aangepaste UITableViewCell die een UILabel bevat waarin variabele hoeveelheden tekst worden weergegeven. De hoogte voor de cel wordt dynamisch berekend om de hoeveelheid tekst te kunnen aanpassen.

Het probleem is dat het UILabel/de tekst niet opnieuw wordt geformatteerd tijdens de bewerkmodus (verwijderen), zoals wordt getoond in de volgende schermopnamen.

Ik moet aangepaste cellen gebruiken in plaats van de standaard tekstLabel enz. Omdat andere rijen complexere situaties hebben met meerdere besturingselementen vergeleken met deze met slechts één UILabel.

a) Hier zijn de tabelcellen met het UILabel-besturingselement. De hoogte van elke cel wordt dynamisch berekend op basis van de hoeveelheid tekst.

Before edit

b) Wanneer de bewerkingsmodus start, wordt het bewerkingselement (rode cirkel) weergegeven dat de tekst van de rechterkant van het scherm verwijdert.

Edit control displayed, text off screen

c) Wanneer een bewerkingsbesturingselement wordt geselecteerd en de knop Verwijderen wordt weergegeven, overlapt het de tekst.

Delete button overlaying text

Het doel is om het tekstgebied (UILabel-frame) zijn breedte te laten verkleinen en de hoogte te vergroten om alle tekst op te nemen wanneer het bewerken begint met "b)". Wanneer de knop Verwijderen "c)" wordt weergegeven, blijft de teksthoogte hetzelfde en kan de tekst die niet past, worden afgekapt en een elipsis "..." wordt weergegeven.

4
Voor iedereen met hetzelfde probleem is hier een link naar de documenten over dit onderwerp die erg nuttig was developer.apple.com/library/ios/#documentation/uikit/referen‌ ce/& hellip;
toegevoegd de auteur ChrisP, de bron

1 antwoord

Dit moet haalbaar zijn door ervoor te zorgen dat u het UILabel toevoegt aan de contentView van de UITableViewCell en dat u de autoresize-maskers correct hebt ingesteld op het UILabel. Heb je dat al geprobeerd?

4
toegevoegd