"Scroll innhold størrelse er tvetydig til 'ScrollView'

stemmer
0

Jeg er litt stuck med ScrollView i Swift og Xcode 11.

Mitt mål er en enkel ScrollView med etiketter og textfields. Hver etikett beskriver hva textfields brukes til. For eksempel er det en Label Name, så du må skrive inn navnet ditt i tekstfeltet under etiketten. Til dette trenger jeg en ScrollView fordi appen jeg koding krever noen mer informasjon. Når jeg prøver å sette dette i en ScrollView jeg stadig får følgende feilmelding: Scroll innhold størrelse er tvetydig å ScrollView.

For å finne hjelp søkte jeg på internett og for eksempel funnet dette spørsmålet: UIScrollView Scroll Content Størrelse Tvetydighet . Dessverre det ikke løste mitt problem. Så jeg bestemte meg for å lage en liten test prosjekt med følgende: - Jeg opprettet et prosjekt som en enkelt visning Søknad - Jeg har lagt en ScrollView til ViewController - Jeg klikket på constrains-knappen på lerret - Jeg valgte 0,0,0 , 0 for å lede / topp / slepe / bunn. - Jeg klikket på legg til 4 begrensninger - Nå advarselen dukket også ScrollView ble ikke endret størrelse til ViewController ... Jeg vet ikke hvorfor -.. Jeg har lagt en UIView inne i ScrollView og sette de samme begrensninger, denne gangen i henhold . til ScrollView - The UIView (Content visning) fikk en ekstra constrain. Lik bredde med roten utsikt - nå har jeg lagt til to knapper, en med teksten Hello og den andre med verden på det - The hallo -knappen mottatt følgende begrensninger: 16 til ledende, etterfølgende og topp, samt en fast høyde på 30. - Den 'verden' -knappen fikk følgende begrensninger: 16 til bunn, ledende, etterfølgende og over en 1000 så du kan bla gjennom ScrollView.

Etter alle disse trinnene feilen er der fortsatt, og hvis jeg kjører app hallo -knappen er på toppen av skjermen og verden -knappen er på bunnen, og jeg kan ikke bla.

Kan kanskje noen hjelpe meg å løse dette problemet. Jeg ser frem til alle svar! Takk for hjelpen på forhånd!

Publisert på 13/02/2020 klokken 23:53
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Det høres ut som du er på rett spor, og veldig nær.

Den første delen er helt rett - du legger inn ScrollView og pin den til null for toppen, etterfølgende, bunn, og ledende begrensninger. Det gjør det ta opp hele skjermen.

Da man slipper en ren gamle UIView inn i ScrollView, og pin dens øvre, bakre, nedre kant og fører begrensninger på det ScrollView (alle som null igjen). Så du setter UIView å ha en lik bredde til ScrollView. Det siste er å sette UIView høyde som tilsvarer ScrollView høyde, men du endre én ting: du setter prioriteten til denne begrensningen er lav (250). Det er i utgangspunktet det som gjør at den UIView å overstige størrelsen på ScrollView, slik at du kan deretter bla.

Alt du gjør da er å legge til knapper, etc inne i UIView, så du plassere dem i forhold til det stedet ScrollView, og pin eller justere dem slik du ønsker.

Svarte 14/02/2020 kl. 00:53
kilden bruker

stemmer
0

Her er trikset som fungerte for meg:

  1. Legg et ScrollView til ønsket ViewController.

  2. Velg den i Outline og åpne sin størrelse inspektør.

  3. Fjern merket det alternativet "Content Layout Guides".

  4. Nå satt ledende / topp / tilhenger og nedre begrensninger til 0 av ScrollView.

  5. Legg til i en UIView og begrense sin ledende / topp / tilhenger og bunn også til 0.

  6. Legg til en lik bredde Constrain til UIView. (Bredden må være lik bredden av utsikten fra ViewController, med denne måten er disabeling horisontal rulling).

  7. Advarselen vil forsvinne hvis hvert element inne i UIView er lenket vertikalt. Dette betyr, at det øverste element har en Begrens til toppen av syn og til elementet under den og så videre. Det siste elementet trenger en constrain til bunnen av visningen.

Hvis du har fulgt denne fremgangsmåten bør være i orden med ScrollViews. På denne måten kan du også legge til så mange innhold som du ønsker å bunnen og ScrollView vil utvide dynamisk.

Jeg håper jeg forklarte det godt nok.

Svarte 14/02/2020 kl. 21:16
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more