首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFTUI - Picker视图、触摸/可滚动区域即使在使用clipped()之后也仍然不在框架内。

SWIFTUI - Picker视图、触摸/可滚动区域即使在使用clipped()之后也仍然不在框架内。
EN

Stack Overflow用户
提问于 2020-06-19 03:21:41
回答 3查看 1.1K关注 0票数 5

SWIFTUI我有一个选择器视图(轮式),我将它的框架剪裁到屏幕的一半宽,在UI中你可以看到它的一半,但滚动区域在该框架之外仍然是可操作的。如何才能移除该外部区域,使其不可滚动?

代码语言:javascript
复制
HStack(spacing: 0) {
    Picker(selection: self.$viewModel.selectedFrameworkIndex, label: Text("")) {
    ForEach(0 ..< viewModel.Categories.count) {
        Text(self.viewModel.Categories[$0])
            .foregroundColor((self.colorScheme == .dark) ? Color.white : Color.black)
         }
    }
    .frame(width: width / 2) // width is width of my screen
    .clipped() 
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-26 22:24:50

在.clipped()之后添加.compositingGroup()

代码语言:javascript
复制
HStack(spacing: 0) {
Picker(selection: self.$viewModel.selectedFrameworkIndex, label: Text("")) {
ForEach(0 ..< viewModel.Categories.count) {
    Text(self.viewModel.Categories[$0])
        .foregroundColor((self.colorScheme == .dark) ? Color.white : Color.black)
     }
}
.frame(width: width / 2) // width is width of my screen
.clipped() 
.compositingGroup()  }    
票数 7
EN

Stack Overflow用户

发布于 2022-06-18 22:29:51

添加这个extension对我有用:

代码语言:javascript
复制
extension UIPickerView {
    open override var intrinsicContentSize: CGSize {
        return CGSize(width: UIView.noIntrinsicMetric, height: super.intrinsicContentSize.height)
    }
}
票数 1
EN

Stack Overflow用户

发布于 2022-06-18 17:45:47

使用.scaleEffect()对我很有用。请检查Clickable area of SwiftUI Picker overlapping

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62462747

复制
相关文章

相似问题

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