2015-04-13 10 views
10

To jest moja pierwsza aplikacja od podstaw pod iOS 8 i XCode 6, więc problemy z rozmieszczeniem zostały zabiciu mnie. W poniższym widoku widzę, że mam UIImageView, który chcę być kwadratem, ale chcę go rozciągnąć na całej szerokości ekranu. Ma on wartość szerokości i wysokości, więc gdy aplikacja działa, ekran jest szerszy, więc kończy się małe pudełko w lewym górnym rogu. Próbowałam bawić się z ograniczeniami w każdy możliwy sposób, ale kiedy go ograniczam, obraz rozrasta się do pełnego rozmiaru i obejmuje wszystko, co wychodzi z ekranu. Jak mogę go rozciągnąć i zachować współczynnik proporcji 1: 1?iOS zachowują współczynnik kształtu UIImageView, ale szerokość wypełnienia

enter image description here

EDIT Ok, myliłem się. To nie jest UIImageView, który się nie koryguje, to cały widok. enter image description here

Odpowiedz

2

Przymocuj obie strony i górę, aby uzyskać podgląd. Można również powiedzieć, że na przykład szerokość/wysokość może wynosić> = 320, co czasami pomaga. Pamiętaj jednak, że będzie działał tylko w trybie portretowym, kiedy zmienisz interfejs na poziomy, obraz nigdy nie pozostanie kwadratowy podczas wypełniania szerokości i będzie w pełni na ekranie w tym samym czasie.

EDIT: obraz nie powinien starać się wykraczać poza granice ekranu (w układzie pionowym) tak długo, jak nie powiedzieć to, że powinno być „tak daleko od dołu”

EDIT - 2: Ustaw więzy widoku w tle na super podgląd. wszystko 4.

+0

Zaktualizowałem moje pytanie z większą ilością szczegółów. Cały widok nie koryguje się, a nie tylko obraz. – Jhorra

1

Ustawiłbym programowo ramkę i nie używałbym w ogóle ograniczeń. Aby to zrobić

  1. Link ImageView do gniazdka jej zdaniem kontrolera
  2. Ustaw kadr więc te dwie wartości są równe

    frame.size.width/frame.size.height

+0

To chyba powinno zadziałało. Zaktualizowałem moje pytanie z większą ilością szczegółów. Cały widok nie koryguje się, a nie tylko obraz. – Jhorra

9

Użyj trybu treści Obrazek:

[self.imageView setContentMode:UIViewContentModeScaleAspectFill]; 

Wygląda na to, że chcesz również, aby szerokość ramki wypełniała ekran. Za pomocą tych ograniczeń:

  • Odległość do góry, w lewo i prawo do 0.
  • wysokość jest równa szerokości ograniczeń.
  • Ograniczenie obrazu 1: 1.

Następnie należy odpowiednio zmienić rozmiar widoku obrazu.

+0

Czy nie ma to wpływu na obraz w widoku, a nie na sam widok? – Jhorra

+0

Zaktualizowałem moje pytanie z większą ilością szczegółów. Cały widok nie koryguje się, a nie tylko obraz. – Jhorra

+0

@Jhorra Zaktualizowałem swoją odpowiedź, mam nadzieję, że to zadziała. –

Powiązane problemy