小编Sea*_*ean的帖子

如何使用KVO根据底层数组元素的变化来更新tableViewCells?

我有一个代表底层数组的表视图。percentage这些单元格有一个标签和一个滑块,应显示数组属性的值。

我想在百分比属性发生变化时使用键值观察来更新标签。(我知道 KVO 在这个例子中有点矫枉过正,但最终滑动一个滑块会影响其他单元格,包括滑块的位置,并且底层数组将从应用程序中的多个位置随时设置,因此 KVO 是可行的方法。 )

我从这个答案中得到了很多帮助,但我无法让它启动并更新标签。我在这里包含了我的所有代码。不知道我哪里错了。

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, CustomCellDelegate {

    @IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
        tableView.delegate = self

        for i in 0...4 {
            items.append(Items(ID: i, percentage: 50))
        }
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { …
Run Code Online (Sandbox Code Playgroud)

key-value-observing ios swift

3
推荐指数
1
解决办法
1707
查看次数

快速过滤和映射结构数组

我可能真的错了。小白。我在这里重现了我在游乐场类型环境中所做的事情。基本上,发送者是其他滑块的 UITableView 中的滑块。myData 是基础数据。我想对基础数据的所有项目执行计算,除了与发送者项目相对应的项目之外。我不知道我的闭包语法是否正确。这是我第一次创建。

// sender comes over as a struct
struct myStruct {
    var tag: Int = 0
    var value: Float = 0
}
let sender = myStruct(tag: 1, value: 199)

// some vars for the calculation
let globalTotal: Float = 597
let globalAnotherTotal: Float = 0

// an array of data structs
struct myDataStruct {
    var name: String = ""
    var value: Float = 0
}
var myData: [myDataStruct] = []
myData.append(myDataStruct(name: "Tom", value: 45.0))
myData.append(myDataStruct(name: "Dick", value: …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

1
推荐指数
1
解决办法
5179
查看次数

由于零而总是将滑块累加到100%失败的算法

这是(应该是)一个函数,它确保多个滑块值之和总是相加globalTotal.

用户可以手动更改滑块值changer.value,然后将此功能应用于其他滑块的值时,可以确定它们的新值或endVal.

startVal需要改变的滑块和改变的滑块的原始值,changerStartVal并且可以通过加权确定其他的新值.

问题和我的问题是.有时remainingStartVals可以为零(当滑块更改一直移动到最大值时)或者startVal可以为零(当滑块更改移动到零然后移动另一个滑块时).当发生这种情况时,我分别得到除零或乘零.这两个都很糟糕,导致不正确的结果.有没有一种简单的方法来解决这个问题?

func calcNewVal(startVal: Float, changerStartVal: Float) -> Float {

    let remainingStartVals = globalTotal - changerStartVal

    let remainingNewVals = globalTotal - changer.value

    let endVal = ((startVal * (100 / remainingStartVals)) / 100) * remainingNewVals

    return endVal

}
Run Code Online (Sandbox Code Playgroud)

algorithm xcode ios swift

1
推荐指数
1
解决办法
589
查看次数

从对象创建新集合的功能方法是什么?

有什么方法可以从这个不变异的对象创建这个集合.我可以用lodash吗?

var obj = {Express: 2, Long_Haul: 1, Short_Haul: 1}

let collection = []

Object.keys(obj).forEach(key => collection.push({method: key, quantity: 
obj[key]}))

// output:
// [ { method: 'Express', quantity: 2 },{ method: 'Long_Haul', quantity: 1 },{ method: 'Short_Haul', quantity: 1 } ]
Run Code Online (Sandbox Code Playgroud)

javascript lodash

0
推荐指数
1
解决办法
49
查看次数

标签 统计

ios ×3

swift ×3

xcode ×2

algorithm ×1

javascript ×1

key-value-observing ×1

lodash ×1