RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-367571

JiosDev's questions

Martin Hope
JiosDev
Asked: 2020-04-16 18:15:44 +0000 UTC

更改 bezierPath 的半径

  • 0

所有视图尺寸的宽度仍然相同。我们希望弧线改变它们的大小,就好像它们被赋予了约束一样。

 @IBDesignable class ArcView: UIView {


    typealias ArcAction = () -> Void

    struct ArcInfo {
        var outlinePath: UIBezierPath
        var action: ArcAction
    }

    private var arcInfos: [ArcInfo]!

    let bgShapeLayer = CAShapeLayer()

    var redRadius:   Float?
    var greenRadius: Float?


private var pathLineWidth: CGFloat {
    return frame.size.width / 15.0
    }
    private var normalArcRadius: CGFloat {
     return   frame.size.width / 2 - pathLineWidth * 1.5
    }

    private var tappedArcRadius: CGFloat {
      return  frame.size.width / 2 - pathLineWidth / 2
    }


    required init?(coder: NSCoder) {
        super.init(coder: coder)
        let recognizer = UITapGestureRecognizer(target: self, action: #selector(tap(_ :)))
        addGestureRecognizer(recognizer)
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        }


    override func draw(_ rect: CGRect) {

        let fullCircle = CGFloat.pi * 2
        let arcAngle = fullCircle * 1.5 / 6

        var lastArcAngle = CGFloat.pi / 4.0 + CGFloat.pi //-CGFloat.pi
        // background
        let backPath = UIBezierPath(arcCenter: CGPoint(x: rect.width/2, y: rect.height/2), radius: 55.0, startAngle: 0, endAngle: CGFloat.pi * 2, clockwise: true)
        #colorLiteral(red: 0.9931474328, green: 0.9932896495, blue: 0.9931163192, alpha: 1).setStroke()
        backPath.lineWidth = 2.3
        backPath.stroke()

        #colorLiteral(red: 0.9212146401, green: 0.9490351081, blue: 0.9671724439, alpha: 1).setFill()
        backPath.fill()

        arcInfos = []

        // Red Arc
        func redArc( action: @escaping ArcAction) {

            let path = UIBezierPath(arcCenter: CGPoint(x: rect.width/2, y: rect.height/2), radius: 46, startAngle: lastArcAngle, endAngle: lastArcAngle + arcAngle, clockwise: true)

            #colorLiteral(red: 0.9098039269, green: 0.4784313738, blue: 0.6431372762, alpha: 1).setStroke()
            path.lineWidth = 10
            path.stroke()
            lastArcAngle += arcAngle

            // separators
            #colorLiteral(red: 0.927436769, green: 0.9490308166, blue: 0.967099607, alpha: 1).setStroke()
            let outlinePath = hitTestPath(for: path)
            outlinePath.lineWidth = 3
            outlinePath.stroke()

            arcInfos.append(ArcInfo(outlinePath: outlinePath, action: action))
        }

        //Green Arc
        func greenArc( action: @escaping ArcAction) {

            let path = UIBezierPath(arcCenter: CGPoint(x: rect.width/2, y: rect.height/2), radius: CGFloat(greenRadius ?? 56), startAngle: lastArcAngle, endAngle: lastArcAngle + arcAngle, clockwise: true)

            #colorLiteral(red: 0.2443430722, green: 0.800511539, blue: 0.4006313086, alpha: 1).setStroke()
            path.lineWidth = 10
            path.stroke()
            lastArcAngle += arcAngle

            // separators
            #colorLiteral(red: 0.927436769, green: 0.9490308166, blue: 0.967099607, alpha: 1).setStroke()
            let outlinePath = hitTestPath(for: path)
            outlinePath.lineWidth = 3
            outlinePath.stroke()

            arcInfos.append(ArcInfo(outlinePath: outlinePath, action: action))
        }

        //Add Arc
        greenArc {
            self.redRadius = 46
            self.greenRadius = 56

        }

        redArc {
            self.redRadius = 56
            self.greenRadius = 46

        }


    }

    @objc func tap(_ recognizer: UITapGestureRecognizer) {
        let location = recognizer.location(in: self)

        if let hitPath = (arcInfos.first { $0.outlinePath.contains(location) }) {
            hitPath.action()
            setNeedsDisplay()
            //print(hitPath)
        }
    }

    func hitTestPath(for path: UIBezierPath) -> UIBezierPath {
        let pathCopy = path.cgPath.copy(strokingWithWidth: 15, lineCap: .butt, lineJoin: .miter, miterLimit: 0)
        return UIBezierPath(cgPath: pathCopy)
    }
}

protocol circleViewDelegate: NSObjectProtocol {
    func selectedType(_ type: typeCircle)
}
ios
  • 1 个回答
  • 10 Views
Martin Hope
JiosDev
Asked: 2020-04-15 02:15:17 +0000 UTC

替换数组中的匹配项

  • 0

文件内容。

1. @NAME1  прыгает через @NAME2#
2. Все игроки молчат.#
3. @NAME1 делает 10 отжиманий.#

我必须从第一行开始,当我在该行中找到@NAME1 或@NAME 2 时,我将其替换为玩家之前输入的名称。如果没有@NAME1,那么我会显示一个字符串并且没有菜单。等等。

以前,我可以从文件中读取一行,然后替换该行上的名称。每次单击按钮时,我都会得到一个随机字符串。

该方法看起来像这样。

func getDataFromFile(name: String , type:String) -> String {
    let pathFile = Bundle.main.path(forResource: name, ofType: type)
    let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
    let  randomContent = contentString.components(separatedBy: ["#"]).randomElement()!.replacingOccurrences(of: "\"", with: "")
    return randomContent
}

然后就需要重做,以便顺序读取,方法就这样重做。

func getDataFromFile(name: String , type: String) -> [String] {
    let pathFile = Bundle.main.path(forResource: name, ofType: type)
    let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
    let fullContent = contentString.components(separatedBy: ["#"]).map { $0.replacingOccurrences(of: "\"", with: "") }
    return fullContent
}

let stringsFromFile = getDataFromFile(name: "file", type: "txt")
stringsFromFile.forEach {
   $0.replacingOccurrences(of: "@NAME1", with: firstName!, options: .literal, range: nil)
   $0.replacingOccurrences(of: "@NAME2", with: secondName!, options: .literal, range: nil)

      playerLabel.text = $0
}

现在,由于某种原因,它向我显示了没有名称的一行,而当我尝试显示下一行时,什么也没有发生。

массивы
  • 2 个回答
  • 10 Views
Martin Hope
JiosDev
Asked: 2020-04-14 19:41:58 +0000 UTC

添加点击 UIBezierPath

  • 1

我画了一个由 4 个圆弧组成的圆。我怎样才能在他们每个人上添加一个水龙头?

这是我添加弧线的方法:

override func draw(_ rect: CGRect) {
    var lastArcAngle = -CGFloat.pi

    func addArc(color: UIColor, percentage: CGFloat, index: Int) {
        let fullCircle = CGFloat.pi * 2
        let arcAngle = fullCircle * percentage
        let path = UIBezierPath(arcCenter: CGPoint(x: rect.width/2, y: rect.height/2), radius: 50, startAngle: lastArcAngle, endAngle: lastArcAngle + arcAngle, clockwise: true)

        color.setStroke()
        path.lineWidth = 20
        path.stroke()
        lastArcAngle += arcAngle
    }
    addArc(color: .red, percentage: 1.5 / 6.0, index: 1)
    addArc(color: .green, percentage: 1.5 / 6.0, index: 2)
    addArc(color: .blue, percentage: 1.5 / 6.0, index: 3)
    addArc(color: .purple, percentage: 1.5 / 6.0,index: 4)
}
ios
  • 1 个回答
  • 10 Views
Martin Hope
JiosDev
Asked: 2020-04-07 01:00:07 +0000 UTC

依次从 txt 文件中获取行

  • 0

我有一个文本文件。它的内容是这样的。

1. Первая строка#
2. Вторая строка#
3. n-я строка#

有这样一种阅读方法。

func getDataFromFile(name: String , type:String) -> String {
    let pathFile = Bundle.main.path(forResource: name, ofType: type)
    let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
    let  randomContent = contentString.components(separatedBy: ["#"]).randomElement()!.replacingOccurrences(of: "\"", with: "")
    return randomContent
}

使用这种方法,我只能随机读取行,而且它们是重复的。如何按顺序阅读?示例:我有 10 行,我从第 1 行读取到第 10 行,然后,例如,我输出已经从文件中提取了每一行。

ios
  • 1 个回答
  • 10 Views
Martin Hope
JiosDev
Asked: 2020-03-31 17:29:13 +0000 UTC

将 AppDelegate.h 添加到项目中

  • 0

我有一个用 swift 编写的应用程序,我在其中使用一个 API。在他的文档中,一个关于目标的例子 - c。我还安装了带有所有目标文件都是 c 的框架的 podspec。如何将 AppDelegate.h 文件添加到我的项目中,以便项目像以前一样具有主 AppDelegate.swift。甚至可能吗?

ios
  • 1 个回答
  • 10 Views
Martin Hope
JiosDev
Asked: 2020-03-24 04:11:15 +0000 UTC

调用共享表时出错

  • 0

我为 UIView 创建了 xib。在其中,借助一个按钮,我制作了一个屏幕并尝试与他人分享。以前,我在 UIViewController 上实现了这个,一切正常。现在我在下面附加的操作中有一个错误。

错误:使用未解析的标识符“存在”

@IBAction func ShareContentAction(_ sender: UIButton) {
        UIGraphicsBeginImageContext(contentView.frame.size)
        contentView.layer.render(in: UIGraphicsGetCurrentContext()!)

        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        var imagesToShare = [AnyObject]()
        imagesToShare.append(image!)

        let activityViewController = UIActivityViewController(activityItems: imagesToShare , applicationActivities: nil)
        activityViewController.popoverPresentationController?.sourceView = self.contentView

         // Здесь ошибка
        present(activityViewController, animated: true, completion: nil)
    }

我不知道这里要替换哪个方法present,因为它是 ViewCONtroller,但我需要在 UIView 上相同

ios
  • 1 个回答
  • 10 Views
Martin Hope
JiosDev
Asked: 2020-02-25 23:00:47 +0000 UTC

随机选择一个文件进行读取

  • 1

我正在尝试将随机值(来自枚举的文件名)传递给文件读取方法的参数。但它会引发错误 OptinalValue:file 。

如何将结构中的随机文件名传递给 getDataFromFIle() 方法参数

读取文件.swift

import Foundation

var content:String!

class readFile
{
      //метод для читки файла
    func getDataFromFile(name: String , type:String)
    {

        let pathFile = Bundle.main.path(forResource: name, ofType: type)
        //в этом рядке ошибка
        let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
        let  randomContent = contentString.components(separatedBy: [".","!"]).randomElement()!//.replacingOccurrences(of: "\"", with: "")
        content = randomContent
    }
}

任务文件.swift

import Foundation

struct TaskName
{
    enum LvlOne
    {
        case taskOneLvlOne
        case taskTwoLvlOne
        case taskThreeLvlOne

        var fileNameLvlOne:String
        {
            switch self {
            case .taskOneLvlOne:
                return "taskOneLvlOne"
            case .taskTwoLvlOne:
                return "taskTwoLvlOne"
            case.taskThreeLvlOne:
                return "TaskThreeLvlOne"
            }
        }
    }
    enum LvlTwo
    {
        case taskOneLvlTwo
        case taskTwoLvlTwo
        case taskThreeLvltwo

        var fileNameLvlTwo:String
        {
            switch self {
            case .taskOneLvlTwo:
                return "taskOneLvlTwo"
            case .taskTwoLvlTwo:
                return "taskTwoLvlTwo"
            case.taskThreeLvltwo:
                return "taskThreeLvltwo"
            }
        }
    }
}

ShowContent.swift

func getContent()
{
    let contentFile = readFile.init()
    conentFile.getDateFromFile(name: TaskName.LvlTwo.allCases.randomElement()!, type: "txt")
    let conentFile = content

    lebel.text = contentFile!
}
ios
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5