Post

Replies

Boosts

Views

Activity

Aligning text across List rows
If you'd like to see a more media-rich version of this question, I've posted a gist with images here: https://gist.github.com/MrRooni/3ce8e377e21f424299b69b945f973092 I have a basic List row I am building that has a large number on the leading edge followed by a title and subtitle next to it: image I started with a simple implementation, like so: HStack { Text("26") .font(.title) VStack(alignment: .leading) { Text("Some title") .font(.body) .bold() Text("Some subtitle") .font(.caption) } } However, because different numbers have different widths my alignment is less than ideal when viewed in the List: image To correct this I ended up using a GeometryReader to grab the height of the row, pad it by 20%, and set that as the width of the number text, like so: GeometryReader { geometry in HStack { Text("26") .font(.title) .frame(width: geometry.size.height * 1.2) VStack(alignment: .leading) { Text("Some title") .font(.body) .bold() Text("Some subtitle") .font(.caption) } } } This works! image However, this approach feels kludgy. My question to you, dear forum frequenters: Is there a better way? Perhaps using alignment guides or another tool I'm not yet aware of?
0
0
591
Jul ’20