Modifica UIView dimensione a livello di programmazione

Ho una UIView, voglio cambiare la dimensione quando l’utente tocca un pulsante.

CGRect newFrame = self.myview.frame;

newFrame.size.width = 200;
newFrame.size.height = 200;
[self setFrame:newFrame];

CGRect newFrame = self.searchField.frame;

newFrame.size.width = 200;
newFrame.size.height = 200;
self.searchField.frame=newFrame;

Nessuno di loro lavora, non cambia nulla. Voglio impostare larghezza e altezza fisse per UIView.

  • È presente nel file di implementazione del controller di visualizzazione?
  • Bodeit sì.
InformationsquelleAutor onivi | 2013-09-02

 

4 Replies
  1. 80

    Se ho capito bene, si desidera modificare la dimensione del self.myview. Tuttavia in nessun momento si sta impostando la cornice. Invece si sta tentando di chiamare sendFrame: il view controller e qualche campo di ricerca. Sono sorpreso, che il primo non è un errore del compilatore.

    Obiettivo C

    CGRect newFrame = self.myview.frame;
    
    newFrame.size.width = 200;
    newFrame.size.height = 200;
    [self.myview setFrame:newFrame];

    Swift

    let newFrame = myview.frame
    
    newFrame.size.width = 200
    newFrame.size.height = 200
    myview.frame = newFrame
    • Sarebbe il downvoter cura di commento perché?
    • il codice sembra non avere alcun effetto sulla UICollectionView
    • Si lavorerà sulla UICollectionView. Se non funziona sulle cellule all’interno di una raccolta di vista. Le dimensioni sono impostate dalla struttura che viene utilizzato per la visualizzazione di raccolta, non il punto di vista di se stessi. Guarda collectionView:layout:sizeForItemAtIndexPath dal UICollectionViewDelegateFlowLayout protocollo
  2. 5

    Nel mio caso, ho avuto un vincolo alla larghezza del mio punto di vista, quindi non ho potuto modificare la larghezza come ha detto Tim.

    Quello che ho fatto : ho creato una presa sul mio constaint, chiamato myviewWidthConstraint per esempio. Poi l’ho presa per modificare la larghezza del mio punto di vista come questo :

    mycell.myviewWidthConstraint.constant = newSize;
  3. 4

    Dimensione campi sono di sola lettura, fare una nuova one –

    //Set height
    let f = view.frame;      //Grab current
    view.frame = CGRect(x: f.origin.x, y: f.origin.y, width: f.width, height: 200);

Lascia un commento