• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Auto Layout Question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Auto Layout Question


  • Subject: Auto Layout Question
  • From: Dave <email@hidden>
  • Date: Wed, 24 May 2017 17:52:50 +0200

iOS Project.

Hi,

I’m trying to do something with auto layout and I can’t seem to get it right.

I want to create a View that holds a Text Field and a View. Call these LabelA and ViewA. I want the Text to appear above the view and i want the View to have the same aspect ratio (which is 1:1). I then want the same again, e.g.another Text Field and View, positioned in the same manner.

In XCode/IB 8.3.2, here’s what I do:

I create a Label Field, and Set the Text to “Side A", set a custom font of size 10, call it SideALabel. I create a UIView (call it SideAView) and set its size to 35,35 and set the Background Colour to Red. I add an Aspect Ratio constraint of 1:1 to SideAView  I then position and resize SideALabel so it has a height of 10 and the width is 35 (same as the UIView). I set then an Alignment Constraint Leading and Trailing Edges between SideALabel and SideAView. I now embed the SideALabel and SideAView in a StackView, call this SideAStackView. It now resizes/repositions the Stack and I move it where I want it. When I switch to different iPhone’s in XCode/IB it rescales accordingly.

I actually want two of these Text/Views Combinations, so I duplicate the Stack View (call it SideBStackView) and position it to the right of SideAStackView). I change the Text to “Side B” and the background color the View to Blue.

      Side A                 Side B
+—————+      +—————+
|                    |       |                   |
|       Red      |       |      Blue      |
|                    |       |                   |
+—————+      +—————+

The problem is that the StackViews resize so they are of different sizes.

I then embedded  SideAStackView and SideBStackView in another StackView - call it SideSelectionStackView, I then set this new StackView’s distribution to “Fill Equally” (I’ve also tried “Fill Proportionally” ) and set the spacing so there is a gap between SideAStackView and SidebStackView. This almost works, except the height of the Text and View Sizes are slightly different. SideA has a higher text box/bigger font and the View is slightly smaller. SideB Text is

I’ve set the Left, Bottom, Right Constraints, so that basically it grows upwards from the bottom of the Screen, but because of the aspect ratio it can’t get too big. I have another View situated to the right of this and the stack view is set to only extend so far from the left of this view.

I’ve tried everything I can think of to make this work but I’ve now run out of ideas.

Am I missing something? Maybe I am going about this in the wrong way?

Any help and suggestions on the best way of doing this would be greatly appreciated.

I’m trying to prepare a demo for tomorrow afternoon and it would be really great if I could show this displaying correctly.

All the Best
Dave











_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Auto Layout Question
      • From: Quincey Morris <email@hidden>
    • Re: Auto Layout Question
      • From: Saagar Jha <email@hidden>
  • Prev by Date: number formatter
  • Next by Date: Re: Auto Layout Question
  • Previous by thread: Re: number formatter
  • Next by thread: Re: Auto Layout Question
  • Index(es):
    • Date
    • Thread