我有一个UITableView显示几个可用选项供用户选择的窗口。我想要的是表始终反映所选的选项,这些选项存储在一个数组中,该数组是与视图控制器分开的类的一部分。我试图使用该方法在加载表时显示选定的选项tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)。我遇到的问题是,当我实现此方法时,加载表时数组中的任何选项在按下时都不会取消选择。代码如下:
class Options {
enum Option : String {
case option1 = "Option 1"
case option2 = "Option 2"
case option3 = "Option 3"
case option4 = "Option 4"
case option5 = "Option 5"
case option6 = "Option 6"
case option7 = "Option 7"
}
static let allOptions : [Option] = [.option1, .option2, .option3, .option4, .option5, .option6, .option7]
static var selectedOptions : [Option] = [.option2, .option7]
}
class …Run Code Online (Sandbox Code Playgroud) 我正在和一位设计师合作,我们在项目中有一些不同的字体 - 有时候全部都是大写的,有时候全部都是小写的.这适用于我的标签和按钮.这些可能会改变,所以我试图做的是自定义UILabel和UIButton类,其中按钮标题将自动调整到我想要的情况,而不考虑在界面构建器中输入的大小写或来自代码的文本.我已使用以下代码成功管理了我的自定义标签:
class MyHeadlineLabel : UILabel {
override func didMoveToWindow() {
self.text = self.text?.lowercased()
self.font = MyFonts.headlineFont
}
}
Run Code Online (Sandbox Code Playgroud)
但是,向UIButton的didMoveToWindow()函数添加类似的代码不起作用:
class MyDarkTextButton: UIButton {
override func didMoveToWindow() {
self.titleLabel?.text = self.titleLabel?.text?.uppercased()
self.font = MyFonts.subHeadFont
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?或者,更好的是,有没有办法使用我的自定义标签作为按钮标签?
默认的"UIPickerView"在我想删除的顶部和底部有一条细灰线,但我无法知道如何做到这一点.
有什么地方我可以设置清除吗?
我有一个正在使用的 SwiftUI 表单,它更新 EnvironmentObject 的值。当 Picker 的值发生变化时,我需要调用一个函数,但我发现的每一种方式要么非常混乱,要么会导致其他问题。我正在寻找的是 Slider 工作的类似方式,但似乎没有。没有任何解决方案的基本代码在这里:
class ValueHolder : ObservableObject {
@Published var sliderValue : Float = 0.5
static let segmentedControlValues : [String] = ["one", "two", "three", "four", "five"]
@Published var segmentedControlValue : Int = 3
}
struct ContentView: View {
@EnvironmentObject var valueHolder : ValueHolder
func sliderFunction() {
print(self.valueHolder.sliderValue)
}
func segmentedControlFunction() {
print(ValueHolder.segmentedControlValues[self.valueHolder.segmentedControlValue])
}
var body: some View {
Form {
Text("\(self.valueHolder.sliderValue)")
Slider(value: self.$valueHolder.sliderValue, onEditingChanged: {_ in self.sliderFunction()
})
Text("\(ValueHolder.segmentedControlValues[self.valueHolder.segmentedControlValue])")
Picker("", selection: self.$valueHolder.segmentedControlValue) {
ForEach(0..<ValueHolder.segmentedControlValues.count) …Run Code Online (Sandbox Code Playgroud) ios ×4
swift ×4
picker ×1
slider ×1
swiftui ×1
uibutton ×1
uilabel ×1
uipickerview ×1
uitableview ×1
uppercase ×1