Ios 计算应用程序错误
我希望第一个单元格值和结果(绿色)在应用程序开始时的值相同 这是该项目的图片 我正在使用的代码-Ios 计算应用程序错误,ios,swift,uitableview,Ios,Swift,Uitableview,我希望第一个单元格值和结果(绿色)在应用程序开始时的值相同 这是该项目的图片 我正在使用的代码- import Foundation import Eureka final class KalkulationCell: Cell<User>, CellType , UITextFieldDelegate{ // var vlera = "" @IBOutlet var percentageField: UITextField! @IBOutlet v
import Foundation
import Eureka
final class KalkulationCell: Cell<User>, CellType , UITextFieldDelegate{
// var vlera = ""
@IBOutlet var percentageField: UITextField!
@IBOutlet var valueField: UITextField!
required init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func setup() {
super.setup()
// we do not want our cell to be selected in this case. If you use such a cell in a list then you might want to change this.
percentageField.delegate = self
selectionStyle = .none
// percentageField.text = "25.00"
// define fonts for our labels
percentageField.font = .systemFont(ofSize: 18)
valueField.font = UIFont.boldSystemFont(ofSize: 18.0)
percentageField.textColor=UIColor.black
// percentageField.font = UIFont.boldSystemFont(ofSize: 18.0)
// specify the desired height for our cell
//height = { return 94 }
// set a light background color for our cell
// backgroundColor = UIColor(red:0.984, green:0.988, blue:0.976, alpha:1.00)
}
override func update() {
super.update()
// get the value from our row
guard let user = row.value else { return }
//
percentageField.text = user.percentage.description
valueField.text = user.value.description
}
func textFieldDidEndEditing(_ textField: UITextField) {
calculate()
}
func calculate(){
let row: DecimalRow = (formViewController()?.form.rowBy(tag: "MyRowTag"))!
let row2: DecimalRow = (formViewController()?.form.rowBy(tag: "test"))!
var perqindja = Double(percentageField.text!)
var vlera = Double(valueField.text!)
if let vlera1 = row.value{
if perqindja != nil {
let kosto = (row.value)!*perqindja!*0.01
valueField.text = kosto.description
let exclamationMark: Character = "%"
percentageField.text?.append(exclamationMark)
valueField.isUserInteractionEnabled = false
valueField.reloadInputViews()
}else if vlera != nil {
// perqindja = Double(percentageField.text!)
let kosto1 = round((vlera!/(row.value)!)*100)
percentageField.text = kosto1.description
let exclamationMark: Character = "%"
percentageField.text?.append(exclamationMark)
percentageField.isUserInteractionEnabled = false
percentageField.reloadInputViews()
}
}
else{
}
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if let text = textField.text,
!text.isEmpty {
textField.text?.removeLast()
//valueField.text?.removeAll()
}
calculate()
return formViewController()?.textInputShouldBeginEditing(textField, cell: self) ?? true
}
}
struct User: Equatable {
var percentage: String
var value: String
}
func ==(lhs: User, rhs: User) -> Bool {
return lhs.percentage == rhs.percentage
}
final class KalkulationRow: Row<KalkulationCell>, RowType {
required init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<KalkulationCell>(nibName: "KalkulationCell")
}
}
<代码>导入基础
进口尤里卡
最后一个类KalkulationCell:Cell,CellType,UITextFieldDelegate{
//var vlera=“”
@IBOutlet var percentageField:UITextField!
@IBOutlet var valueField:UITextField!
必需的初始化(样式:UITableViewCellStyle,reuseIdentifier:String?){
init(样式:style,reuseIdentifier:reuseIdentifier)
}
必需的初始化?(编码器aDecoder:NSCoder){
super.init(编码者:aDecoder)
}
覆盖函数设置(){
super.setup()
//在这种情况下,我们不希望选择单元格。如果在列表中使用这样的单元格,则可能需要更改此设置。
percentageField.delegate=self
selectionStyle=.none
//percentageField.text=“25.00”
//为我们的标签定义字体
percentageField.font=.systemFont(ofSize:18)
valueField.font=UIFont.boldSystemFont(字体大小:18.0)
percentageField.textColor=UIColor.black
//percentageField.font=UIFont.boldSystemFont(大小:18.0)
//指定单元格所需的高度
//高度={return 94}
//为我们的单元格设置浅色背景色
//backgroundColor=UIColor(红色:0.984,绿色:0.988,蓝色:0.976,阿尔法:1.00)
}
覆盖函数更新(){
super.update()
//从我们的行中获取值
guard let user=row.value else{return}
//
percentageField.text=user.percentage.description
valueField.text=user.value.description
}
func textField编辑(textField:UITextField){
计算()
}
func计算(){
让row:DecimalRow=(formViewController()?.form.rowBy(标记:“MyRowTag”))!
让row2:DecimalRow=(formViewController()?.form.rowBy(标记:“test”))!
var perqindja=Double(percentageField.text!)
var vlera=Double(valueField.text!)
如果让vlera1=row.value{
如果perqindja!=零{
让kosto=(row.value)!*perqindja!*0.01
valueField.text=kosto.description
让感叹号标记:Character=“%”
percentageField.text?.append(感叹号标记)
valueField.isUserInteractionEnabled=false
valueField.reloadInputViews()
}否则,如果vlera!=零{
//perqindja=Double(percentageField.text!)
让kosto1=圆形((vlera!/(row.value)!)*100)
percentageField.text=kosto1.description
让感叹号标记:Character=“%”
percentageField.text?.append(感叹号标记)
percentageField.isUserInteractionEnabled=false
percentageField.reloadInputViews()
}
}
否则{
}
}
func textField应该开始编辑(textField:UITextField)->Bool{
如果let text=textField.text,
!text.i空{
textField.text?.removeLast()
//valueField.text?.removeAll()
}
计算()
返回formViewController()?.textInputShouldBeginEditing(textField,单元格:self)?true
}
}
结构用户:equalable{
变量百分比:字符串
变量值:字符串
}
func==(左:用户,右:用户)->Bool{
返回lhs.percentage==rhs.percentage
}
最终类KalkulationRow:Row,RowType{
必需的初始化(标记:字符串?){
super.init(tag:tag)
cellProvider=cellProvider(nibName:“KalkulationCell”)
}
}
让行:小数行=(formViewController()?.form.rowBy(标记:
“MyRowTag”)--此代码调用第一个单元格
让row2:DecimalRow=(formViewController()?.form.rowBy(标记:
"测试")!--此代码调用结果单元格(绿色)
我希望第一个单元格的值和结果(绿色)是相同的,这意味着你需要的正是。。。你想要什么颜色或价值one@iOS我想成为同一个值Hai,将哪个参数传递到结果单元格,将同一个参数值发送到第一个单元格实际上你需要发布相关的表视图代码,因为逻辑在表视图委托中…@IOS我更新了代码,你现在可以看到了。谢谢你的帮助