- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Swift 4:我有一个静态单元格(分组样式)。我只是将一个 UILabel 和一个 UIStepper 添加到单元格中。现在我想在点击 UIStepper 时更改 UILabel 的文本。就像图片一样:
这是我的代码:
if indexPath.section == 0 {
cell.textLabel?.text = "\(first[indexPath.row])"
let step = UIStepper()
let label = UILabel()
func labelValueChanged(sender:UIStepper!) {
label.text = "\(Int(step.value))"
}
cell.addSubview(step)
step.translatesAutoresizingMaskIntoConstraints = false
step.centerYAnchor.constraint(equalTo: cell.centerYAnchor).isActive = true
step.widthAnchor.constraint(equalToConstant: 94).isActive = true
step.heightAnchor.constraint(equalToConstant: 29).isActive = true
step.rightAnchor.constraint(equalTo: cell.rightAnchor, constant: -30).isActive = true
step.addTarget(self, action: #selector(labelValueChanged), for: .valueChanged)
cell.addSubview(label)
label.text = "0"
label.translatesAutoresizingMaskIntoConstraints = false
label.centerYAnchor.constraint(equalTo: cell.centerYAnchor).isActive = true
label.widthAnchor.constraint(equalToConstant: 50).isActive = true
label.heightAnchor.constraint(equalToConstant: 21).isActive = true
label.rightAnchor.constraint(equalTo: cell.rightAnchor, constant: -124).isActive = true
}
如果在单元格内添加了 labelValueChanged 函数,将会出现错误:Argument of '#selector' cannot refer to local function 'labelValueChanged(sender:)'
但如果在单元格外添加了 labelValueChanged 函数,标签和 UIStepper 的值将不可用。
有什么办法可以实现吗?任何建议,将不胜感激。谢谢。
最佳答案
Is there any way to make it happen?
一种方法是使用步进器的 tag
属性来存储单元格的行号。然后 View Controller 可以获得步进器的 tag
并知道受影响的行。不过,这并不理想,因为它不太适合包含多个部分的表格。
There will be an error if the labelValueChanged function was added inside of the cell:
Argument of '#selector' cannot refer to local function 'labelValueChanged(sender:)'
我不太清楚您为什么会遇到这个问题,但您当然可以将 IBAction 方法添加到自定义表格单元格类,将步进器的目标设置为单元格,然后将步进器的操作设置为该方法。而且您不需要以编程方式设置目标和操作——您可以在 Storyboard编辑器中配置它们。一个好的策略是让单元格将实际工作委托(delegate)给某个 Controller 对象,可能是 View Controller 。将步进器的目标设置为单元格可让单元格调用 Controller 中的方法,该方法包含比简单操作(只有 sender
参数)更多的参数,因此您可以传递行和部分、步进值如何变化,以及您可能需要的任何其他内容。
关于ios - 如果 UIStepper 在 Swift 4 中以编程方式点击,如果它们都在 UITableViewCell 中,如何更改 UILabel 的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893385/
我有一个 UILabel,其不透明度已通过使用 [UIColor clearColor] 更改为空白我现在想将标签内文本的不透明度更改为尽可能完整的级别。我该怎么做? 最佳答案 使用以下代码更改UIL
我在同一个站点中阅读了如何插入和 UILabel(子类 UILabel 并覆盖所需的方法)。在将它添加到我的应用程序之前,我决定在一个独立的测试应用程序中对其进行测试。代码如下所示。 这是 MyUIL
NSString *longStr = @"AAAAAAAAAA\nBBBBB\nCCCCCCCCCCCCCCCCCC"; 如何使用 UILabel 截断某些标签宽度: AAA... BBB...
我想在 UILabel.text 上有一个纹理。 这样做我对 UILabel 进行了子类化。使用 -drawTextInRect 方法,我尝试仅获取用于使用 CGImageMaskCreate 函数创
我正在尝试使用 iOS 6.0 中新的自动布局 api 构建动态布局。我尝试构建的布局有 2 个按钮,它们之间有一个标签,如下图所示: 我想要的是以灰色显示的容器 View 根据标签中的文本量增加或减
我不知道这是否是我做错了什么,但每次 iOS 6 到 7、7 到 8 以及从 8 到 9 的重大更新时,一些 UILabel 似乎不够大,我看到“...”因为标签被截断了。我现在必须通过应用程序并重置
我偶然发现了一个我不确定如何解决的问题。 正如您在此处看到的名称应该所在的标签(我从用户输入中获取名称,这意味着它是动态的)。如果写得太长,它只会覆盖其他标签。 此外,在 Storyboard中,UI
我是初学者,所以对于任何似乎被忽视或简单的事情,我深表歉意。 基本上,我想要做的是让屏幕上的日期选择器更新 UILabel,然后获取更新 UILabel 的结果并将其推回到前一个屏幕上的另一个 UIL
我有一个 UILabel 的 NSMutableArray。我需要能够在用户触摸时选择此 NSMutableArray 中的特定 UILabel,并将此触摸 UILabel 的中心移动到用户将手指拖动
我知道对于类的元素 UIButton和 UIBarButtonItem他们自动假设window.tintColor作为主要颜色,如果我在应用程序中随时为窗口设置新的 tintColor,则会立即更改。
我是开发者世界的新人,自 2 月份以来一直断断续续地使用 swift 和 Xcode。我希望有人能帮助我。我正在尝试制作一个简单的小费计算器,但似乎无法将两个 uilabels 放在一起。这就是我到目
我有一个单元格原型(prototype),我正在尝试向其添加两个标签。我有两个紧挨着的标签,但标签的大小是动态的,所以我希望第二个标签能够根据第一个标签的大小移动。 基本上,我希望两个标签之间有一个固
这个问题看起来很平常..但是我昨天遇到了问题,我在 xib 中添加了一个标签并为其创建了导出,我想要在该标签内有多行,按钮,所以我决定添加新的子里面有标签... UILabel *label; lab
我正在尝试实现一个可以更改 uilabel 字体大小的功能,我可以缩放 uilabel 大小(即 uilabel.size),然后自动更改 uilabel 的字体大小,示例应用程序是 InstaTex
如果我设置bottomLabel.text = Chinese character,当我运行它时我看不到aboveLabel,如果我调试 View 层次我可以看到它。so有什么问题吗? UIL
我不太确定标题是否符合我的要求,但我有一个带有一堆句子的 label,我想将它们中的每一个分开到不同的 UILabel 这是我的代码 var s: [String] = [] for (i
当我更改 UILabel 的文本属性时,它只会在应用程序中部分更新。 我试过将它放在 viewDidLoad 函数和单独的专用函数中,但无济于事。如果我在更新后将 Label.text 打印到控制台,
我正在尝试使用自动布局对齐两个 UILabel,其中第一个标签没有设置宽度但使用固有内容大小,第二个应该与第一个宽度相同,将文本换行。 理想情况下,第二个标签应将数字行设置为 0 以使用动态类型,但我
我有几个标签,它们永远不应该相互接触。见下图(忽略黄色字母): 一共是4个标签,2个选手名字,2个分数。球员的名字将取代原来的球员标签文本。所以“玩家 1:”可以是任意宽度的任意文本。标签在 View
我正在开发一个应用程序,我需要能够点击并拖动 UILabels。第二个挑战是我需要屏幕上的其他 UILabel 相互移开(切勿重叠)。因此,当我拖动一个标签并遇到另一个标签时,它会将第二个标签撞开。也
我是一名优秀的程序员,十分优秀!