Come faccio a rendere ImageView di UITableViewCell una dimensione fissa anche quando l'immagine è più piccola


104

Ho un sacco di immagini che sto usando per le visualizzazioni delle immagini della cella, non sono tutte più grandi di 50x50. ad es. 40 x 50, 50 x 32, 20 x 37 .....

Quando carico la vista tabella, il testo non si allinea perché la larghezza delle immagini varia. Inoltre vorrei che le piccole immagini appaiano al centro anziché a sinistra.

Ecco il codice che sto provando nel mio metodo "cellForRowAtIndexPath"

cell.imageView.autoresizingMask = ( UIViewAutoresizingNone );
cell.imageView.autoresizesSubviews = NO;
cell.imageView.contentMode = UIViewContentModeCenter;
cell.imageView.bounds = CGRectMake(0, 0, 50, 50);
cell.imageView.frame = CGRectMake(0, 0, 50, 50);
cell.imageView.image = [UIImage imageWithData: imageData];

Come puoi vedere ho provato alcune cose, ma nessuna funziona.

Risposte:


152

Non è necessario riscrivere tutto. Consiglio di farlo invece:

Pubblica questo all'interno del tuo file .m della tua cella personalizzata.

- (void)layoutSubviews {
    [super layoutSubviews];
    self.imageView.frame = CGRectMake(0,0,32,32);
}

Questo dovrebbe funzionare bene. :]


28
se imposti self.imageView.boundsl'immagine verrà centrata.
BLeB

45
cosa succede se non aggiungiamo una sottoclasse di UITableViewCell?
nonopolarità

3
@ 動靜 能量: La creazione di sottoclassi di UITableViewCell è il trucco principale per farlo funzionare.
auco

5
Questo non funziona per me. L'immagine avvolge ancora l'intera imageView.
joslinm

14
Non funziona neanche per me poiché le etichette sono disallineate.
nverinaud

139

Per quelli di voi che non hanno una sottoclasse di UITableViewCell:

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

      CGSize itemSize = CGSizeMake(40, 40);
      UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
      CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
      [cell.imageView.image drawInRect:imageRect];
      cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
      UIGraphicsEndImageContext();

 [...]
     return cell;
}

Il codice sopra imposta la dimensione su 40x40.

Swift 2

    let itemSize = CGSizeMake(25, 25);
    UIGraphicsBeginImageContextWithOptions(itemSize, false, UIScreen.mainScreen().scale);
    let imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
    cell.imageView?.image!.drawInRect(imageRect)
    cell.imageView?.image! = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

Oppure puoi utilizzare un altro approccio (non testato) suggerito da @Tommy:

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

      CGSize itemSize = CGSizeMake(40, 40);
      UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0)          
 [...]
     return cell;
}

Swift 3+

let itemSize = CGSize.init(width: 25, height: 25)
UIGraphicsBeginImageContextWithOptions(itemSize, false, UIScreen.main.scale);
let imageRect = CGRect.init(origin: CGPoint.zero, size: itemSize)
cell?.imageView?.image!.draw(in: imageRect)
cell?.imageView?.image! = UIGraphicsGetImageFromCurrentImageContext()!;
UIGraphicsEndImageContext();

Il codice sopra è la versione Swift 3+ di quanto sopra.


3
La distorsione dell'immagine può essere corretta da UIGraphicsBeginImageContextWithOptions (itemSize, NO, UIScreen.mainScreen.scale); invece di UIGraphicsBeginImageContext (itemSize);
Kiran Ruth R

1
Buona risposta. A proposito, non ho avuto la possibilità di UIScreen.mainScreen.scalequindi sono andato con UIGraphicsBeginImageContext. Ridimensionato anche il imageView nella cella di base.
denikov

3
@GermanAttanasioRuiz selezionando la cella si ridimensiona di nuovo all'originale, dovrebbe essere così, come risolverlo.
Bonnie

6
per tutti quelli che si sono confusi come me è necessario impostare l'immagine prima dell'inizio del contesto. cioè cell.imageView.image = [UIImage imageNamed: @ "my_image.png"];
Guy Lowe,

5
Operazioni così costose non dovrebbero far parte di cellForRowAtIndexPath
Krizai

33

Ecco come l'ho fatto. Questa tecnica si occupa di spostare il testo e le etichette di testo dei dettagli in modo appropriato a sinistra:

@interface SizableImageCell : UITableViewCell {}
@end
@implementation SizableImageCell
- (void)layoutSubviews {
    [super layoutSubviews];

    float desiredWidth = 80;
    float w=self.imageView.frame.size.width;
    if (w>desiredWidth) {
        float widthSub = w - desiredWidth;
        self.imageView.frame = CGRectMake(self.imageView.frame.origin.x,self.imageView.frame.origin.y,desiredWidth,self.imageView.frame.size.height);
        self.textLabel.frame = CGRectMake(self.textLabel.frame.origin.x-widthSub,self.textLabel.frame.origin.y,self.textLabel.frame.size.width+widthSub,self.textLabel.frame.size.height);
        self.detailTextLabel.frame = CGRectMake(self.detailTextLabel.frame.origin.x-widthSub,self.detailTextLabel.frame.origin.y,self.detailTextLabel.frame.size.width+widthSub,self.detailTextLabel.frame.size.height);
        self.imageView.contentMode = UIViewContentModeScaleAspectFit;
    }
}
@end

...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[SizableImageCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

    cell.textLabel.text = ...
    cell.detailTextLabel.text = ...
    cell.imageView.image = ...
    return cell;
}

Grazie, Chris. Ha funzionato perfettamente. Potresti volerlo aggiornare rimuovendo il rilascio automatico perché ARC lo proibisce ora. Ottima risposta però!
CSawy

1
Questa è ancora oggi la soluzione migliore. Grazie.
Rémi Belzanti

In questi giorni probabilmente consiglierei di creare una cella personalizzata con un xib o una cella prototipo in uno storyboard e di creare un'intera altra visualizzazione dell'immagine non correlata alla visualizzazione dell'immagine di una cella standard. Ma questo è ancora abbastanza semplice, immagino!
Chris

1
Voglio fare tutto con il codice invece di usare un xib o uno storyboard e questo ha funzionato perfettamente.
John81

Questa risposta non fa nulla se w <wishWith, che mi sembra sia il caso d'uso di interesse (almeno, nella domanda).
Nate

21

vista immagine aggiunta come vista secondaria alla cella della vista tabella

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(20, 5, 90, 70)];
imgView.backgroundColor=[UIColor clearColor];
[imgView.layer setCornerRadius:8.0f];
[imgView.layer setMasksToBounds:YES];
[imgView setImage:[UIImage imageWithData: imageData]];
[cell.contentView addSubview:imgView];

1
Non dimenticare di rilasciare imgView se non stai usando ARC.
Charlie Monroe

14

L'intera cella non ha bisogno di essere rifatta. È possibile utilizzare la proprietà indentationLevel e indentationWidth di tableViewCells per spostare il contenuto della cella. Quindi aggiungi il tuo imageView personalizzato sul lato sinistro della cella.


6

È meglio creare una visualizzazione immagine e aggiungerla come visualizzazione secondaria alla cella, quindi è possibile ottenere la dimensione del fotogramma desiderata.


Ho appena provato, sembra un buon inizio ma il testo nelle celle ora si sovrappone alle immagini, come faccio a spostare la visualizzazione del contenuto di 50 pixel a destra? cell.contentView.bounds = CGRectMake (50, 0, 270, 50); non ha alcun effetto
Robert

1
Invece di utilizzare la visualizzazione predefinita della cella, creare un'etichetta e aggiungerla come vista secondaria alla cella, quindi assegnare il testo alla proprietà del testo dell'etichetta. In questo modo puoi progettare la cella secondo le tue esigenze.
Warrior

Ciò sarà più utile se desideri visualizzare titolo, data, descrizione ecc. Più valori in una cella.
Warrior

Ok, quindi fondamentalmente malato devo rifare la cella a livello di programmazione. Non dovrebbe essere troppo difficile. Grazie per l'aiuto.
Robert

6

Semplicemente veloce ,

Passaggio 1: creare una sottoclasse del UITableViewCell
passaggio 2: aggiungere questo metodo alla sottoclasse di UITableViewCell

override func layoutSubviews() {
    super.layoutSubviews()
    self.imageView?.frame = CGRectMake(0, 0, 10, 10)
}

Passaggio 3: creare un oggetto cella utilizzando quella sottoclasse in cellForRowAtIndexPath,

Ex: let customCell:CustomCell = CustomCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")

Passaggio 4: divertiti


2
UIImage *image = cell.imageView.image;

UIGraphicsBeginImageContext(CGSizeMake(35,35));
// draw scaled image into thumbnail context

[image drawInRect:CGRectMake(5, 5, 35, 35)]; //
UIImage *newThumbnail = UIGraphicsGetImageFromCurrentImageContext();
// pop the context
UIGraphicsEndImageContext();
if(newThumbnail == nil)
{
    NSLog(@"could not scale image");
    cell.imageView.image = image;
}
else
{
    cell.imageView.image = newThumbnail;
}

2

Questo ha funzionato rapidamente per me:

Crea una sottoclasse di UITableViewCell (assicurati di collegare la tua cella nello storyboard)

class MyTableCell:UITableViewCell{
    override func layoutSubviews() {
        super.layoutSubviews()

        if(self.imageView?.image != nil){

            let cellFrame = self.frame
            let textLabelFrame = self.textLabel?.frame
            let detailTextLabelFrame = self.detailTextLabel?.frame
            let imageViewFrame = self.imageView?.frame

            self.imageView?.contentMode = .ScaleAspectFill
            self.imageView?.clipsToBounds = true
            self.imageView?.frame = CGRectMake((imageViewFrame?.origin.x)!,(imageViewFrame?.origin.y)! + 1,40,40)
            self.textLabel!.frame = CGRectMake(50 + (imageViewFrame?.origin.x)! , (textLabelFrame?.origin.y)!, cellFrame.width-(70 + (imageViewFrame?.origin.x)!), textLabelFrame!.height)
            self.detailTextLabel!.frame = CGRectMake(50 + (imageViewFrame?.origin.x)!, (detailTextLabelFrame?.origin.y)!, cellFrame.width-(70 + (imageViewFrame?.origin.x)!), detailTextLabelFrame!.height)
        }
    }
}

In cellForRowAtIndexPath, rimuovi la coda dalla cella come nuovo tipo di cella:

    let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) as! MyTableCell

Ovviamente cambia i valori numerici per adattarli al tuo layout


1

Ho creato un'estensione utilizzando la risposta di @GermanAttanasio. Fornisce un metodo per ridimensionare un'immagine alla dimensione desiderata e un altro metodo per fare lo stesso aggiungendo un margine trasparente all'immagine (questo può essere utile per le viste tabella in cui si desidera che anche l'immagine abbia un margine).

import UIKit

extension UIImage {

    /// Resizes an image to the specified size.
    ///
    /// - Parameters:
    ///     - size: the size we desire to resize the image to.
    ///
    /// - Returns: the resized image.
    ///
    func imageWithSize(size: CGSize) -> UIImage {

        UIGraphicsBeginImageContextWithOptions(size, false, UIScreen.mainScreen().scale);
        let rect = CGRectMake(0.0, 0.0, size.width, size.height);
        drawInRect(rect)

        let resultingImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        return resultingImage
    }

    /// Resizes an image to the specified size and adds an extra transparent margin at all sides of
    /// the image.
    ///
    /// - Parameters:
    ///     - size: the size we desire to resize the image to.
    ///     - extraMargin: the extra transparent margin to add to all sides of the image.
    ///
    /// - Returns: the resized image.  The extra margin is added to the input image size.  So that
    ///         the final image's size will be equal to:
    ///         `CGSize(width: size.width + extraMargin * 2, height: size.height + extraMargin * 2)`
    ///
    func imageWithSize(size: CGSize, extraMargin: CGFloat) -> UIImage {

        let imageSize = CGSize(width: size.width + extraMargin * 2, height: size.height + extraMargin * 2)

        UIGraphicsBeginImageContextWithOptions(imageSize, false, UIScreen.mainScreen().scale);
        let drawingRect = CGRect(x: extraMargin, y: extraMargin, width: size.width, height: size.height)
        drawInRect(drawingRect)

        let resultingImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        return resultingImage
    }
}

1

Ecco il metodo di lavoro di @germanattanasio, scritto per Swift 3

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    ...
    cell.imageView?.image = myImage
    let itemSize = CGSize(width:42.0, height:42.0)
    UIGraphicsBeginImageContextWithOptions(itemSize, false, 0.0)
    let imageRect = CGRect(x:0.0, y:0.0, width:itemSize.width, height:itemSize.height)
    cell.imageView?.image!.draw(in:imageRect)
    cell.imageView?.image! = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
}

1

Se si utilizza cell.imageView?.translatesAutoresizingMaskIntoConstraints = falseè possibile impostare vincoli sul file imageView. Ecco un esempio funzionante che ho usato in un progetto. Ho evitato le sottoclassi e non ho avuto bisogno di creare storyboard con celle prototipo, ma mi ci è voluto un po 'per iniziare a correre, quindi probabilmente è meglio usarlo solo se non c'è un modo più semplice o conciso a tua disposizione.

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 80
}



    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .subtitle, reuseIdentifier: String(describing: ChangesRequiringApprovalTableViewController.self))

    let record = records[indexPath.row]

    cell.textLabel?.text = "Title text"

    if let thumb = record["thumbnail"] as? CKAsset, let image = UIImage(contentsOfFile: thumb.fileURL.path) {
        cell.imageView?.contentMode = .scaleAspectFill
        cell.imageView?.image = image
        cell.imageView?.translatesAutoresizingMaskIntoConstraints = false
        cell.imageView?.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor).isActive = true
        cell.imageView?.widthAnchor.constraint(equalToConstant: 80).rowHeight).isActive = true
        cell.imageView?.heightAnchor.constraint(equalToConstant: 80).isActive = true
        if let textLabel = cell.textLabel {
            let margins = cell.contentView.layoutMarginsGuide
            textLabel.translatesAutoresizingMaskIntoConstraints = false
            cell.imageView?.trailingAnchor.constraint(equalTo: textLabel.leadingAnchor, constant: -8).isActive = true
            textLabel.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
            textLabel.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true
            let bottomConstraint = textLabel.bottomAnchor.constraint(equalTo: margins.bottomAnchor)
            bottomConstraint.priority = UILayoutPriorityDefaultHigh
            bottomConstraint.isActive = true
            if let description = cell.detailTextLabel {
                description.translatesAutoresizingMaskIntoConstraints = false
                description.bottomAnchor.constraint(equalTo: margins.bottomAnchor).isActive = true
                description.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true
                cell.imageView?.trailingAnchor.constraint(equalTo: description.leadingAnchor, constant: -8).isActive = true
                textLabel.bottomAnchor.constraint(equalTo: description.topAnchor).isActive = true
            }
        }
        cell.imageView?.clipsToBounds = true
    }

    cell.detailTextLabel?.text = "Detail Text"

    return cell
}

0

Il normale UITableViewCell funziona bene per posizionare le cose ma cell.imageView non sembra comportarsi come vorresti. Ho scoperto che è abbastanza semplice ottenere il layout corretto di UITableViewCell dando prima a cell.imageView un'immagine di dimensioni adeguate come

// Putting in a blank image to make sure text always pushed to the side.
UIGraphicsBeginImageContextWithOptions(CGSizeMake(kGroupImageDimension, kGroupImageDimension), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
cell.imageView.image = blank;

Quindi puoi semplicemente connettere il tuo UIImageView che funziona correttamente con

// The cell.imageView increases in size to accomodate the image given it.
// We don't want this behaviour so we just attached a view on top of cell.imageView.
// This gives us the positioning of the cell.imageView without the sizing
// behaviour.
UIImageView *anImageView = nil;
NSArray *subviews = [cell.imageView subviews];
if ([subviews count] == 0)
{
    anImageView = [[UIImageView alloc] init];
    anImageView.translatesAutoresizingMaskIntoConstraints = NO;
    [cell.imageView addSubview:anImageView];

    NSLayoutConstraint *aConstraint = [NSLayoutConstraint constraintWithItem:anImageView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:cell.imageView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0];
    [cell.imageView addConstraint:aConstraint];

    aConstraint = [NSLayoutConstraint constraintWithItem:anImageView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:cell.imageView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0];
    [cell.imageView addConstraint:aConstraint];

    aConstraint = [NSLayoutConstraint constraintWithItem:anImageView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:kGroupImageDimension];
    [cell.imageView addConstraint:aConstraint];

    aConstraint = [NSLayoutConstraint constraintWithItem:anImageView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:kGroupImageDimension];
    [cell.imageView addConstraint:aConstraint];
}
else
{
    anImageView = [subviews firstObject];
}

Imposta l'immagine su anImageView e farà quello che ti aspetti da un UIImageView. Sii della dimensione che desideri indipendentemente dall'immagine che gli dai. Questo dovrebbe andare in tableView: cellForRowAtIndexPath:


0

Questa soluzione essenzialmente disegna l'immagine come "adattamento dell'aspetto" all'interno del dato rettangolo.

CGSize itemSize = CGSizeMake(80, 80);
UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
UIImage *image = cell.imageView.image;

CGRect imageRect;
if(image.size.height > image.size.width) {
    CGFloat width = itemSize.height * image.size.width / image.size.height;
    imageRect = CGRectMake((itemSize.width - width) / 2, 0, width, itemSize.height);
} else {
    CGFloat height = itemSize.width * image.size.height / image.size.width;
    imageRect = CGRectMake(0, (itemSize.height - height) / 2, itemSize.width, height);
}

[cell.imageView.image drawInRect:imageRect];
cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

0

Ho avuto lo stesso problema. Grazie a tutti gli altri che hanno risposto: sono stato in grado di trovare una soluzione insieme utilizzando parti di molte di queste risposte.

La mia soluzione sta usando swift 5

Il problema che stiamo cercando di risolvere è che potremmo avere immagini con diverse proporzioni nel nostro file TableViewCell , ma vogliamo renderizzate con larghezze coerenti. Le immagini dovrebbero, ovviamente, essere renderizzate senza distorsioni e riempire l'intero spazio. Nel mio caso, stavo bene con un po 'di "ritaglio" di immagini alte e magre, quindi ho usato la modalità contenuto.scaleAspectFill

Per fare ciò, ho creato una sottoclasse personalizzata di UITableViewCell. Nel mio caso, l'ho chiamato StoryTableViewCell. L'intera classe viene incollata di seguito, con i commenti in linea.

Questo approccio ha funzionato per me quando utilizzavo anche una vista accessori personalizzata ed etichette di testo lunghe. Ecco un'immagine del risultato finale:

Visualizzazione tabella con rendering con larghezza dell'immagine coerente

class StoryTableViewCell: UITableViewCell {

    override func layoutSubviews() {
        super.layoutSubviews()

        // ==== Step 1 ====
        // ensure we have an image
        guard let imageView = self.imageView else {return}

        // create a variable for the desired image width
        let desiredWidth:CGFloat = 70;

        // get the width of the image currently rendered in the cell
        let currentImageWidth = imageView.frame.size.width;

        // grab the width of the entire cell's contents, to be used later
        let contentWidth = self.contentView.bounds.width

        // ==== Step 2 ====
        // only update the image's width if the current image width isn't what we want it to be
        if (currentImageWidth != desiredWidth) {
            //calculate the difference in width
            let widthDifference = currentImageWidth - desiredWidth;

            // ==== Step 3 ====
            // Update the image's frame,
            // maintaining it's original x and y values, but with a new width
            self.imageView?.frame = CGRect(imageView.frame.origin.x,
                                           imageView.frame.origin.y,
                                           desiredWidth,
                                           imageView.frame.size.height);

            // ==== Step 4 ====
            // If there is a texst label, we want to move it's x position to
            // ensure it isn't overlapping with the image, and that it has proper spacing with the image
            if let textLabel = self.textLabel
            {
                let originalFrame = self.textLabel?.frame

                // the new X position for the label is just the original position,
                // minus the difference in the image's width
                let newX = textLabel.frame.origin.x - widthDifference
                self.textLabel?.frame = CGRect(newX,
                                               textLabel.frame.origin.y,
                                               contentWidth - newX,
                                               textLabel.frame.size.height);
                print("textLabel info: Original =\(originalFrame!)", "updated=\(self.textLabel!.frame)")
            }

            // ==== Step 4 ====
            // If there is a detail text label, do the same as step 3
            if let detailTextLabel = self.detailTextLabel {
                let originalFrame = self.detailTextLabel?.frame
                let newX = detailTextLabel.frame.origin.x-widthDifference
                self.detailTextLabel?.frame = CGRect(x: newX,
                                                     y: detailTextLabel.frame.origin.y,
                                                     width: contentWidth - newX,
                                                     height: detailTextLabel.frame.size.height);
                print("detailLabel info: Original =\(originalFrame!)", "updated=\(self.detailTextLabel!.frame)")
            }

            // ==== Step 5 ====
            // Set the image's content modoe to scaleAspectFill so it takes up the entire view, but doesn't get distorted
            self.imageView?.contentMode = .scaleAspectFill;
        }
    }
}

0

La soluzione che abbiamo trovato è simile a molte altre. Ma per ottenere la posizione corretta del separatore abbiamo dovuto impostarlo prima di chiamare super.layoutSubviews(). Esempio semplificato:

class ImageTableViewCell: UITableViewCell {

    override func layoutSubviews() {
        separatorInset.left = 70
        super.layoutSubviews()

        imageView?.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
        textLabel?.frame = CGRect(x: 70, y: 0, width: 200, height: 50)
    }

}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.