Dodałem przewijany widok o rozmiarze większym niż rozmiar ekranu w moim sterowniku widoku przy użyciu storyboardu. Oczywiście celem przewijania jest posiadanie zawartości większej niż widok, który ją zawiera. Chciałbym dodać przyciski i etykiety na dole przewijania graficznie w scenorysie, ale nie mogę wyświetlić tej części przewijania. Jak się tam dostanę. Próbowałem dostosować w inspektorze rozmiarów, który pracował dla mnie, gdy po raz pierwszy dodałem widok kilka tygodni temu, ale to nie pozwala mi nic zmienić.Dodawanie elementów do przewijania w storyboardie (inspektor rozmiarów wydaje się być zablokowany)
Dodawanie elementów do przewijania w storyboardie (inspektor rozmiarów wydaje się być zablokowany)
Odpowiedz
Jedyny sposób, w jaki udało mi się edytować moją zawartość w UIScrollView
(a ta historia sięga czasów sprzed Storyboard, ale jestem prawie pewien, że nadal obowiązuje) to zmienić przesunięcie x lub y twojej ramki zawartości.
Inną opcją, w zależności od tego, czy widok treści jest "statyczny" (wbudowany w .xib), czy nie, jest wyciągnięcie go poza widok przewijania i ustawienie go jako programowego w widoku programowym w postaci viewDidLoad
lub coś w tym stylu. .
Mam nadzieję, że to pomoże, mogę śledzić przykłady kodu, jeśli ma to sens i potrzebujesz ich.
EDYCJA (2/10/2012): Oto przykład, jak podłączyć większy widok do widoku przewijania. W tym przykładzie widok przewijania (scrollView) jest ustawiony na właściwość widoku kontrolera widoku. W pliku .xib dodałem również nazwę UIView
o nazwie largerView. Te dwa pliki nie są w żaden sposób powiązane z plikiem .xib, tylko pojawiają się tam.
Biorąc pod uwagę ...
@property (nonatomic, retain) IBOutlet UIView *largeView;
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
W viewDidLoad:
po prostu ...
// add the largeView to the main scrollView
[scrollView addSubview:largeView];
[scrollView setContentSize:largeView.frame.size];
Jest to prawdopodobnie najprostszy przykład chociaż. Powodzenia!
To świetnie, że to rozwiązałeś. Gdybym miał taki problem, utworzyłbym widok, który ma taki sam rozmiar klatki jak rozmiar zawartości widoku przewijania. Dodaj wszystkie potrzebne elementy sterujące (przyciski, etykiety, pola tekstowe itp.) W żądanym położeniu. Po tym właśnie dodano widok na przewijanie, wykonaj IBOutlet przewijania i zaprogramuj jego rozmiar treści programowo gdzieś w moim kodzie, przed użyciem tego zwoju (ustawienie go w viewDidLoad będzie w porządku).
To kolejne rozwiązanie tego problemu.
Też to lubię. Dam sobie szansę, gdy następnym razem znajdę się w takiej sytuacji. –
To też zasugerowałem. – livingtech
@ T.J. & @livingtech:
Dlaczego nie używasz właściwości osadzania podanej w Kreatorze interfejsów?
Tutaj tworzysz dwa widoki (UIView largeView i UIScrollView scrollView). Więc jest to rodzaj marnowania pamięci na te same przedmioty.
- Pierwszy dodać jeszcze jeden UIView w stalówkę ze swojej wysokości i szerokości.
- Dodaj elementy sterujące w dowolnym miejscu. (powiedzmy tylko largeView)
- Następnie użyj właściwości embed z ScrollView.(powiedzmy tylko myScrollView)
- Teraz dodaj ten myScrollView w oryginalnym widoku, gdziekolwiek chcesz, z niestandardową wysokością i szerokością.
- W podstawie kodu ustaw tylko myScrollView contentSize według rozmiaru largeView.
Byłoby to łatwiejsze z punktu widzenia przydatności do ponownego użycia kodu i możliwości rozbudowy. Jeśli w przyszłości musisz dodać więcej obiektów.
Nie jestem w 100% pewien, że śledzę cię tutaj, ale myślę, że jest to wciąż ta sama liczba obiektów, co sugerowałem. Jestem prawie pewien, że zawsze potrzebujesz 'UIView' do widoku zawartości twojego' UIScrollView'. – livingtech
OP nie używa stalówki. Jeśli T.J. gdybyś mógł przeciągnąć widok przewijania na płótno stalówki, zmienić jego rozmiar itp., aby dopasować wszystkie widoki w nim, a następnie zmienić jego rozmiar i dodać go do widoku podrzędnego w kodzie lub przeciągnąć go jako subview wewnątrz stalówki przy użyciu widoku hierarchii (nie można tego zrobić, przeciągając i upuszczając rzeczywiste widżety widoku w obszarze roboczym). Ale ta strategia nie działa w edytorze scenorysów. – wkhatch
Możesz pracować na pełnym ekranie iPada, jeśli zawartość nie przekracza zbyt dużego ekranu.
- 1. Ekran GNU nie odpowiada, wydaje się zablokowany.
- 2. Dynamiczne dodawanie elementów panelu i paski przewijania
- 3. RelativeLayout systemu Android wydaje się być uszkodzony
- 4. ZIP mylić. Plugin wydaje się być uszkodzony
- 5. FileStream nie wydaje się być włączony
- 6. Dodawanie elementów do obiektów
- 7. ipython: Notebook nie wydaje się być JSON
- 8. Git "nie wydaje się być repozytorium git"
- 9. dodawanie elementów do obiektu
- 10. WCF Maks Przypadki wydaje się być ograniczony do 10
- 11. Związki w C++ 11: domyślny konstruktor wydaje się być usunięty
- 12. Delphi Dodawanie elementów do prędkości ComboBox
- 13. dynamiczny podgląd listy dodawanie "Załaduj więcej elementów" na końcu przewijania
- 14. Dynamiczne dodawanie elementów do JComboBox
- 15. Dodawanie zmiennych do elementów DOM
- 16. F # funkcja filtru - warunek pierwszego argumentu wydaje się być odwrócony
- 17. Dodawanie elementów do generatorów pytonów
- 18. Dodawanie elementów do listy Java
- 19. Animowanie przejść elementów wspólnych przy użyciu fragmentów Androida wydaje się być koszmarem.
- 20. jQuery - dodawanie elementów do tablicy
- 21. Dodawanie rozmiarów plików listy Get-ChildItem
- 22. Rozumienie Rozmiarów Androida Rozumienie Rozmiarów
- 23. Animate.CSS Dodawanie paska przewijania?
- 24. Dodanie elementów DOM z jquery append() wydaje się przeciekać pamięć?
- 25. Dodawanie elementów do comboBox w WPF
- 26. NSArray dodawanie elementów
- 27. Ustaw wiersz UITableViewHighight do UITableViewAutomaticDimension w storyboardie?
- 28. Ostateczna kolejność wykonywania poleceń wydaje się być losowa.
- 29. wiosna 3,0 MVC wydaje się być ignorowanie messages.properties
- 30. NodeJs, javascript: .forEach wydaje się być asynchroniczne? potrzebna jest synchronizacja
Wróciłem i spojrzałem na to jeszcze raz. Odkryłem, że widok przewijania, który ma treść większą niż widok w scenopisie, był widokiem najwyższego poziomu kontrolera widoku. Po skonfigurowaniu w ten sposób nie można dostosować przesunięcia xiy w inspektorze rozmiarów. Jeśli jednak uiview jest najwyższym poziomem i znajduje się w nim widok przewijania, to można zmienić przesunięcie treści (x i y pod "widokiem" w inspektorze rozmiaru), eksponując różne obszary przewijania w scenorysie, aby mogły być skonfigurowany. Problem rozwiązany! –
Przykłady kodu byłyby świetne! :) – whoisgregg
Dodano przykład kodu do zaimplementowania widoku do widoku przewijania programowo. – livingtech