descargar apple actualizacion ios objective-c storyboard autolayout uiviewanimation

ios - apple - iphone 7



Cómo cambiar una vista con animación con restricciones de diseño automático están en iOS (1)

Estoy haciendo una tarea en la que, necesito cambiar la vista por 35 píxeles para mostrar una vista que está presente debajo de esa vista.

O puede decir que necesito insertar una barra como notificación en la parte superior y cambiar la vista existente por 35 píxeles en tiempo de ejecución.

El problema es con la distribución automática activada para admitir todas las pantallas. El cambio no está sucediendo como queremos ... ¿Alguna sugerencia aquí? La vista superior tiene una restricción de que su distancia con la vista superior es cero, que debe cambiar en el tiempo de ejecución, cuando mostramos la vista inferior.

Aquí están las pantallas antes de cambiar:

Después de cambiar y mostrar la imagen:

También he dado una vista lateral. NotifView: vista amarilla que necesitamos mostrar en el tiempo de ejecución twoView: que tenemos que cambiar para mostrar la vista superior en la parte superior.

- (void) shiftTwoView: (NSString *) summary {

CGFloat shiftHeight = 35.0f; CGRect twoRect = twoView.frame; twoRect.origin.y += shiftHeight; twoRect.size.height -= shiftHeight; [UIView animateWithDuration:3.5 animations:^{ twoView.frame = twoRect; }];

}


Cuando está utilizando Diseño automático, no necesita establecer marcos como ese. Puede manipular los valores de restricciones programáticamente para hacerlo. Como no ha aclarado todas las restricciones que ha aplicado aquí, le explicaré todo lo que necesita para hacerlo.

notifyview: - leading = 0, trailing = 0, top = 0, height = 0; twoView: - leading = 0, trailing = 0, top(to notifview) = 0; bottom = 0;

Ahora crea un IBOutlet para la restricción de altura de notifyview , digamos notifyViewHeightConstraint .

Ahora, para mostrar el contenido de su notifyView, todo lo que necesita hacer es aumentar su altura. Por defecto, esta altura es 0 del guión gráfico. Puede cambiarlo como notifyViewHeightConstraint.constant = 40; . Una vez que haya terminado y necesite volver a desaparecer, puede volver a establecer el valor constant en 0;

-(void)shiftTwoView:(NSString*)summary { notifyViewHeightConstraint.constant = 40; [UIView animateWithDuration:2.0 animations:^{ [self.view layoutIfNeeded]; }]; }