首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >截断HStack末尾的项

截断HStack末尾的项
EN

Stack Overflow用户
提问于 2022-08-10 23:12:32
回答 2查看 50关注 0票数 -1

如果没有足够的空间,我希望在HStack的末尾截断和隐藏项目。

例如。

代码语言:javascript
复制
struct ExampleView: View {
    var body: some View {
        HStack {
            Text("Lorem")
            Text("ipsum")
            Text("dolor")
            Text("sit")
            Text("amet")
            Text("consectetur")
            Text("adipiscing")
        }
    }
}

struct ExampleView_Previews: PreviewProvider {
    static var previews: some View {
        ExampleView()
            .previewLayout(.fixed(width: 300, height: 100))
    }
}

这就产生了:

相反,我希望将VStack中的所有项目保持在理想的宽度。但是,当我们耗尽空间时,我想截断下一个,然后隐藏其余的。

例如截断“圣洁”和隐藏“绝食”。

我怎样才能达到这个结果呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-11 05:24:10

一种可能的方法是使用布局优先级,并将数据从视图中分离出来,以使这更简单。

这里是简化的演示。用Xcode 13.4 / iOS 15.5测试

代码语言:javascript
复制
let data = ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing"]
var body: some View {
    HStack {
        ForEach(data.indices, id: \.self) {
            Text(data[$0])
               .layoutPriority(-Double($0))    // << here !!
        }
    }
    .lineLimit(1)  // << here !!
}
票数 2
EN

Stack Overflow用户

发布于 2022-08-10 23:52:42

我认为这是你唯一的方法,你可以用这样的方式做一串你想要展示的东西:

代码语言:javascript
复制
struct ContentView: View {
    var body: some View {
        
        Text("Lorem ipsum dolor sit amet consectetur adipiscing")
            .lineLimit(1)
            .frame(width: 300)
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73313668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档