2015-04-27 12 views
9

Come centrare qualsiasi sottoview nella sua UIview genitore solo orizzontalmente, non verticalmente. Ho provato child.center = parent.center ma posiziona la vista figlio al centro della vista genitore sia orizzontalmente che verticalmente. Come posso allinearlo al centro solo orizzontalmente. GrazieCome centrare qualsiasi subview orizzontalmente in UIView genitore ma non verticalmente?

+1

impostato soltanto center.x e ignorare il valore y – Jageen

+0

centro è una CGPoint. dovresti solo essere in grado di impostare il valore x di esso nel centro di visualizzazione genitore x valore – Steve

risposta

23

cambiando solo il centro come questo può aiutare

child.center = CGPointMake(CGRectGetMidX(parentView.bounds), child.center.y); 
+0

Molte grazie Jaideep, your ans è superbo. – Zeebok

+0

@ user2787182 Sono contento che l'abbia aiutato. – Jaideep

+0

Questo non è giusto. Sta modificando child.center.y con uguale child.origin.y che lo sposterà verticalmente. – ChrisH

1

Prova questa,

subview.frame = CGRectMake(((parentView.frame.size.width/2)-(subview.frame.size.width/2)),subview.frame.origin.y,subview.frame.size.width,subview.frame.size.height); 
+1

Grazie a Malav per la tua risposta. – Zeebok

+0

Il codice precedente ti ha aiutato? –

+0

sì, ma grazie anche a te. – Zeebok

2

Non è possibile modificare la proprietà x del UIViewController s' center direttamente, ma si può fare il seguente:

CGPoint center = child.center; 
center.x = parent.center.x; 
child.center = center; 
+0

Grazie mille Jaideep, la tua risposta è superba. La tua risposta è molto facile da capire, ma sono un po 'confuso. Anche Jaideep ha dato una buona risposta, sono confuso su quale dovrei accettare. Entrambi sono favolosi. – Zeebok

+0

Molti saluti per tutti voi dalla mia parte. – Zeebok

0

Avevo bisogno di horizont centro ally (ma non verticalmente) un UIImageView per ogni dimensione dispositivo differente, quindi ho usato questo, che funzionava bene:

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
[self.myImageView setCenter:CGPointMake(CGRectGetMidX(screenRect), self.myImageView.frame.origin.y + self.myImageView.frame.size.height/2)]; 
Problemi correlati