小编vac*_*ama的帖子

swift3将int转换为indexPath

有没有机会将一个Integer转换为indexPath?

因为按下按钮时我需要从单元格输出文本.或者我可以使用String作为Button的发送者吗?

cell.uncheckbox.tag = indexPath.row as! IndexPath

cell.uncheckbox.addTarget(self, action: #selector(ViewController.btnClicked), for: UIControlEvents.touchUpInside)




func btnClicked(sender: UIButton)
{

    let row = sender.tag
    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: row) as! TableViewCell;

    print("cellentext \(cell.textLabel?.text)")
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

swift3

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

这是将Double翻转到最接近的一半的良好实现吗?

我想绕到最接近的一半Double.例如,如果数字是3.76我希望它舍入到4.另一方面,如果数字是3.74我希望它舍入到3.5.

我想出了这段代码:

extension Double {
    func roundToClosestHalf() -> Double {
        let upperLimit = ceil(self)
        let difference = upperLimit - self
        if difference <= 0.25 {
            return ceil(self)
        } else if difference > 0.25 && difference < 0.75 {
            return upperLimit - 0.5
        } else {
            return floor(self)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更有效/更好的方法来做到这一点?

let x = 3.21.roundToClosestHalf() // 3
Run Code Online (Sandbox Code Playgroud)

rounding swift

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

如何在Swift中检查具有关联值的枚举的枚举情况

我正在尝试检查枚举的情况,该枚举具有每个案例的关联值,如下所示:

enum status {
    case awake(obj1)
    case sleeping(obj2)
    case walking(obj3)
    case running(obj4)
}
Run Code Online (Sandbox Code Playgroud)

我正在if(status == deviceStatus.awake){检查状态情况并收到错误:Binary operator '==' cannot be applied to operands of type 'status' and '(obj1) -> status'

enums swift

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

字符串打印数组可选,为什么?

我在操场上玩阵列,我有点困惑.这是代码:

var players = ["tob", "cindy", "mindy"] //["tob", "cindy", "mindy"]
print(players.isEmpty) // False
var currentPlayer = players.first // "tob"
print(currentPlayer) // "Optional("tob")\n"
Run Code Online (Sandbox Code Playgroud)

为什么说"可选"?我找到了解释:"该属性首先实际返回一个可选项,因为如果数组为空,则首先返回nil."

但它不是空的..isEmpty // false,所以我不明白这一点.

提前感谢您的帮助.

swift

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

如何以编程方式查找视图控制器高度?

我有一个简单的问题,当我将视图控制器设置为自由形式时,如何以编程方式找到视图控制器的高度?

我想做类似的事情:

let viewControllerHeight = viewController.contentSize.height
Run Code Online (Sandbox Code Playgroud)

这就是我想要找到的

另外,如何在没有链接的情况下在此处发布图像?

viewcontroller ios swift

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

将一个数组从Swift中的特定索引复制到另一个数组

我是Swift的新手,我正在尝试将一个数组复制到另一个数组.

我想要做的是将Array1的内容复制到Array2.但是Array2内容应该包含特定索引的内容.例如:

Array1有100个元素,即.索引从0到99.在Array2中我想复制说,从索引25到最后一个元素(即99)的元素.

我该怎么做.我尝试搜索问题,但没有得到解决方案.

请帮忙.提前致谢.

arrays ios swift

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

使用自定义枚举作为值在Swift中创建字典"即时"

我正在使用该performSegueWithIdentifier:sender:方法,我想通过sender参数传递几个参数.在Objective-C,我创建的NSDictionary 上即时使用@{"myKey": myValue}的语法.

我在Swift中尝试了几种方法,但编译器总是给我一个错误:'AnyObject?' 没有名为{'Element'或'Key'}的成员

如何重现Swift中的预期行为?谢谢!

编辑:这是我的代码:

self.stopCamera()
dispatch_async(dispatch_get_main_queue(), { () -> Void in
    self.performSegueWithIdentifier("backCameraVCtoFrontCameraVC", sender: [("image", image),  ("fitler", filter)])
})
Run Code Online (Sandbox Code Playgroud)

enums nsdictionary ios swift

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

从后台计时器更新标签

再会,

我正在开发一个工作正常的锻炼应用程序,除非将它移到后台。计时器挂起时暂停。我找到了一个我正在工作的后台计时器示例,但现在我无法让显示锻炼持续时间的 UILabel 工作。在控制台中,它指出我正在从我理解的主线程访问一个对象。我不知道该怎么做是让 UILabel 更新,因为计时器从后台线程中更新,更新标签在主线程中。

这是我所拥有的(打印语句帮助我遵循代码):

import UIKit

class ViewController: UIViewController {

    var time = 0

    var timer = Timer()

    @IBOutlet weak var outputLabel: UILabel!

    @IBOutlet weak var start: UIButton!

    @IBOutlet weak var paused: UIButton!

    @IBAction func startButton(_ sender: UIButton) {

        startButtonPressed()

    }

    @IBAction func pausedButton(_ sender: UIButton) {

        pausedButtonPressed()

    }

    @IBOutlet weak var timerLabel: UILabel!

    func updateTimerLabel() {

        let hours = Int(self.time) / 3600
        let minutes = Int(self.time) / 60 % 60
        let seconds = Int(self.time) % 60 …
Run Code Online (Sandbox Code Playgroud)

background uilabel ios swift

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

在Xcode 11 Beta 5中使用ForEach时为什么会出错?

错误信息:

无法推断通用参数“ ID”

ForEach(0...self.workoutsViewModel.workoutRoutine[self.workoutIndex].routine[0].exercises.count - 1) { x in

    Text("\\(x)")

}
Run Code Online (Sandbox Code Playgroud)

xcode swift ios13 swiftui xcode11

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

SwiftUI TabView 重复第一个条目

Xcode RC 14.1

在此输入图像描述

第一个选项卡生成两次。第一个有效,第二个则显示空白屏幕。这已在 SO 的其他地方报道过,人们建议删除 Spacer(),但这没有什么区别。

下面的代码有两种变体,一种是标签的枚举,而不是整数,但它们的行为都是相同的。(不知道为什么下面所有的代码没有变成灰色?)

import SwiftUI


struct MenuView: View {
    
    private enum Tab: Hashable {
            case location
            case calculate
            case install
            case results
            case about
    }
    
    //  @State private var tabBarSelected: Tab = .location
    @State private var selectedTab = 0
    
    var body: some View {
        VStack {
            TabView(selection: $selectedTab) {
                LocationView()
                  //  .tag(Tab.location)
                    .tag(0)
                    .tabItem {
                        Text("Location")
                        Image(systemName: "globe.europe.africa")
                    }
                CalculateView()
                  //  .tag(Tab.calculate)
                    .tag(1)
                    .tabItem {
                        Text("Calculate")
                        Image(systemName: "apps.ipad")
                    }
                InstallView()
                    // .tag(Tab.install)
                    .tag(2)
                    .tabItem { …
Run Code Online (Sandbox Code Playgroud)

tabview swiftui swiftui-tabview

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