Prawdopodobnie coś prostego, ale nie mogę zrozumieć, dlaczego nie mogę zmienić rozmiaru UIView w xib w Interface Builder.
Utworzyłem nowy widok XIB w xcode iw inspektorze rozmiaru, szerokość i wysokość są wyłączone i wyszarzone do 320 na 460. To dziwne, ponieważ mogę zmienić rozmiar dla pozostałych dwóch widoków (związanych z pozostałymi dwoma paskami kart przedmiotów).
Nie jestem pewien, czy ma to coś wspólnego, ale ostatnio zaktualizowałem SDK do 3.
Dzięki!
Aby to osiągnąć w XCode 4.6.3 / 5.0.2, musisz wykonać zrzut ekranu poniżej:
Use Auto Layout
Freeform
rozmiarJest to potrzebne podczas tworzenia headerView dla tableView
źródło
Część, której szukasz, znajduje się w pierwszym panelu Inspektora (Command-1). U góry znajduje się sekcja oznaczona jako Symulowane elementy interfejsu użytkownika. Domyślnie pasek stanu jest włączony. Musisz upewnić się, że wszystkie trzy są ustawione na Brak.
źródło
Podobnie jak w Xcode 4.2, iOS 5.0.1, domyślne symulowane metryki obejmują symulację atrybutu „size” UIViewControllers na „Inferred”
Jeśli zmienisz ten atrybut na „Swobodny”, możesz zmienić rozmiar UIView zawartego w UIViewController, jednocześnie symulując pasek stanu (lub dowolną inną symulację w tym zakresie)
źródło
Po prostu przejdź do inspektora, przejdź do pierwszego panelu (lub naciśnij klawisz Command-1), a następnie zmień pola oznaczone Pasek stanu, Górny pasek i Dolny pasek na Brak w sekcji „Symulowane elementy interfejsu użytkownika”. Może być konieczne kliknięcie małego trójkąta, aby były widoczne.
źródło
Zabawne, że mam podobny problem. Usunąłem wszystkie widoki z pliku xib i ponownie dodałem widok. Ustaw pasek stanu na „nieokreślony”, aby pasek stanu nie był dostosowany. Po dodaniu widok zostanie utworzony z x = 0, y = 0, w = 320 h = 460 zamiast (0,0,320,480), jak bym się spodziewał. Po zmianie wysokości na 480 i podpięciu go do właściciela pliku i zmianie koloru tak, aby wyróżniał się w stosunku do tła. Zauważyłem, że między górną częścią ekranu a widokiem był biały pasek. Rozszerzyłem swój kod o:
w ramach viewDidLoad
Okazuje się, że widok jest taki, jaki jest załadowany z IB, w rzeczywistości (0, 20, 320, 480). Aby obejść ten problem, zresetowałem ramkę widoku za pomocą self.view.frame = CGRectMake (0, 0, 320, 480);
Używam IB 3.2.5
Chciałbym wiedzieć, jak to naprawić.
źródło
Zauważyłem, że UIView utworzony automatycznie podczas tworzenia pliku xib nie może być zmieniany z panelu rozmiaru lub uchwytów krawędzi.
Wszystko, co zrobiłem, to dodać kolejny UIView i przeciągnąłem wszystko ze starego UIView do nowego, a następnie usunąłem stary.
Rozwiązało to dla mnie problem, ale tak, myślę, że istnieje podstawowy problem z konstruktorem interfejsu, który Apple ma rozwiązać (ktoś mnie poprawi, jeśli się mylę).
Używam wbudowanego konstruktora interfejsu XCode 4.
źródło
Ułożyłem to w inny sposób ...
otwórz swój xib w swoim ulubionym edytorze tekstu i edytuj tę linię
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController">
CompassViewController
to nazwa twojej klasy, z którą próbujesz połączyć swój nib / xib.Po prostu edytuj nazwę klasy, wpisując poprawną nazwę klasy i gotowe;)
źródło
W scenorysie wybierz UIVIew i przejdź do inspektora atrybutów zmień rozmiar UIVIew na „FreeForm” zamiast na „Inferred”
źródło