float: links in objective-c

9

Ich versuche, dass sich einige Buttons wie float verhalten: Links in CSS. Wenn sich die Ansicht beispielsweise bei der Ausrichtung ändert, sollten die Schaltflächen so angepasst werden, dass sie in ihre Containeransicht passen.

Im Querformat sollte diese UIScrollView horizontal scrollen, im Hochformat sollte sie vertikal scrollen.

Ich versuche, einen ScrollView ähnlich wie den Tab "Empfohlen" in der iPad YouTube App zu erstellen. Landschaft hat 4 Spalten, Hochformat: 3 Spalten, Registerkarte "Abonnements", Hochformat, dieselbe Ansicht hat 2 Spalten.

    
thomasdecrick 10.01.2011, 17:02
quelle

3 Antworten

2

Ich habe ein Layoutsystem implementiert, um solche Dinge zu tun. Es gibt ein Demo-Projekt, wie es in dieses Repository eingecheckt werden kann. Ich würde mich freuen, alle Fragen dazu zu beantworten. Dies ist viel leichter als AQGridView, also wenn Sie die zusätzliche Funktionalität nicht benötigen, die er zur Verfügung stellt, würde ich einen ähnlichen Ansatz wie meinen empfehlen.

    
Joshua Weinberg 10.01.2011, 19:20
quelle
1

Vielleicht möchten Sie AQGridView auschecken, was im Grunde eine Neuimplementierung von Cocoas NSCollectionView ist: Ссылка

Andernfalls müssen Sie möglicherweise layoutSubviews in Ihrer parentView überschreiben und dann die Untersichten (Schaltflächen) entsprechend neu anordnen, wenn sich die Dimensionen der parentView ändern.

Prost,

Johannes

    
Johannes Fahrenkrug 10.01.2011 18:06
quelle
0

Wenn Sie dies manuell implementieren müssten (durch Überschreiben von layoutSubviews ), ich denke, der Algorithmus wäre etwa so:

  1. Beginne mit X = 0, Y = 0 (unter der Annahme von gekippten Koordinaten)
  2. Für jede Schaltfläche:
    1. Wenn (X + Tastenbreite) & gt; Behälterbreite, X = 0 setzen, Y erhöhen
    2. Platzieren Sie den Button unter (X, Y)
    3. Erhöhen Sie X um die Breite der Schaltfläche
dreamlax 10.01.2011 23:25
quelle