Tengo una UIView, quiero cambiar el tamaño cuando el usuario toca un botón.

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;

Ninguno de ellos funciona, no cambia nada. Quiero establecer el ancho fijo y altura de UIView.

  • Es este en el archivo de implementación del controlador de vista?
  • Bodeit sí.
InformationsquelleAutor onivi | 2013-09-02

4 Comentarios

  1. 77

    Si entiendo correctamente, usted desea cambiar el tamaño de self.myview. Sin embargo, en ningún momento se establece el marco de la misma. En su lugar está tratando de llamar sendFrame: en el controlador de vista y algunas campo de búsqueda. Me sorprende, que la anterior no dará un error del compilador.

    Objetivo 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
    • Sería el downvoter atención a comentario ¿por qué?
    • que el código que parece no tener efecto en un UICollectionView
    • Va a trabajar en la UICollectionView. A pesar de que no funcionará en las células dentro de una vista de colección. Los tamaños de los establecidos por el diseño que se utilizó para la recolección de vista, no por los puntos de vista propios. Eche un vistazo a collectionView:diseño:sizeForItemAtIndexPath de la UICollectionViewDelegateFlowLayout protocolo
  2. 5

    En mi caso, tuve una restricción en el ancho de mi punto de vista, por lo que no podía cambiar el ancho como el de Tim dijo.

    Lo que he hecho : he creado una toma de corriente de mi constaint, llamado myviewWidthConstraint por ejemplo. Luego he utilizado este medio para cambiar el ancho de mi punto de vista como este :

    mycell.myviewWidthConstraint.constant = newSize;
  3. 3

    Tamaño de los campos son de sólo lectura, acaba de hacer una nueva

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

Dejar respuesta

Please enter your comment!
Please enter your name here