小编Xco*_*der的帖子

Segue和Button以编程方式迅捷

我正在使用iCarousel,我必须创建自己的按钮.我想将编程按钮中的数据传递给另一个视图,但我没有segue标识符,因为我以编程方式创建了按钮.我不知道是否可以通过编程方式创建segue的标识符.

button.addTarget(self, action: #selector(buttonAction3), for: .touchUpInside)
        button.setTitle("\(titulos[index])", for: .normal)
        tempView.addSubview(button)
        let myImage = UIImage(named: "modo4.png") as UIImage?
        button.setImage(myImage, for: .normal)

let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "modo") as! Modo1ViewController
self.present(viewController, animated: false, completion: nil)

if segue.identifier == "" {
        if let destination = segue.destination as? Modo1ViewController {
            destination.nomb = nombres
        }

    }
Run Code Online (Sandbox Code Playgroud)

button segue programmatically-created swift

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

Swift3和Xcode8:'subscript'不可用:不能使用CountableClosedRange <Int>下标String,

错误1:当我尝试stringValue从元数据显示以上错误时Swift3:

let myMetadata: AVMetadataMachineReadableCodeObject = metadataObjects[0] as! AVMetadataMachineReadableCodeObject

// take out the system and check-digits
let myBarcode = myMetadata.stringValue[1...11] //error 
Run Code Online (Sandbox Code Playgroud)

错误2: 在String的扩展中,我将这些写入get right(x)和left(x)function来获取子字符串:

extension String {

    // length of string
    var length: Int {
        return self.characters.count
    }

    //  right(x) and left(x) function to get substring
    func right(_ i: Int) -> String?
    {
        return self[self.length-i ... self.length-1 ] //error  
    }

    func left(_ i: Int) -> String?
    {
        return self[0 ... i-1] //error     
    } …
Run Code Online (Sandbox Code Playgroud)

swift

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

Swift Pong(No SpriteKit):如何计算移动球的角度

我正在尝试使用Swift制作游戏Pong,但不使用SpriteKit。到目前为止,我已经能够在视图上成功绘制一个矩形,并且能够在屏幕上拖动它。这是我当前的代码:

import UIKit

class PongView: UIView {
    lazy var paddle: CGRect = {
        return CGRect(x: 200,
                             y: 200,
                             width: self.frame.width / 6,
                             height: self.frame.height / 60)
    }()
    var movePaddle = false

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        let gesture = UIPanGestureRecognizer(target: self, action: #selector(dragPaddle(recognizer:)))
        addGestureRecognizer(gesture)
    }

    override func draw(_ rect: CGRect) {
        drawPaddle(rect)
    }

    func drawPaddle(_ rect: CGRect) {
        let path = UIBezierPath(rect: paddle)
        UIColor.black.set()
        path.fill()
    }

    func paddleInBounds() -> Bool {
        //padding vars are calculated in …
Run Code Online (Sandbox Code Playgroud)

pong swift

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

postMessage() 在 WKWebView 中不起作用(iOS,目标 c)

我正在尝试使用 WKWebView 加载本地 html 文件并希望将 postMessage 发送到我的 html ,但 postMessage 不起作用,WKWebView 无法加载 html 文件。

加载WKWebView:

- (void)viewDidLoad {
    [super viewDidLoad];


    WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
    WKUserContentController* userController = [[WKUserContentController alloc]init];
   theConfiguration.userContentController = userController;




    _twkwebview = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];

    NSString *indexHTMLPath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:indexHTMLPath];

    NSURLRequest *nsrequest=[NSURLRequest requestWithURL:url];
    [theConfiguration.userContentController
     addScriptMessageHandler:self name:@"interOp"];


    [_twkwebview loadRequest:nsrequest];
     [self setupPostMessageScript];
    [self.test addSubview:_twkwebview];

}
Run Code Online (Sandbox Code Playgroud)

从这里,我想发布消息,但它不起作用。我没有收到任何错误,这是源代码(html):

- (void)setupPostMessageScript {

        NSString *source = @"window.originalPostMessage = window.postMessage;"
        "window.postMessage = function(message, targetOrigin, transfer) …
Run Code Online (Sandbox Code Playgroud)

javascript iphone objective-c ios wkwebview

5
推荐指数
0
解决办法
2112
查看次数

在 Swift 4.0 中过滤结构数组

我想通过搜索栏过滤结构数组。我知道如何过滤字符串数组,但不幸的是我无法将它应用于结构数组。这是我已经做过的事情:

var BaseArray: [dataStruct] = []

var filteredArray: [dataStruct] = []
Run Code Online (Sandbox Code Playgroud)

BaseArray 是具有多个变量的结构数组。我的目标是过滤所有变量。有任何想法吗?

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    if searchBar.text == nil || searchBar.text == ""{
        isSearching = false
        view.endEditing(true)
        tableView.reloadData()
    }
    else{
        isSearching = true

        filteredArray = BaseArray.filter { $0.name == searchText }

        tableView.reloadData()
    }
}
Run Code Online (Sandbox Code Playgroud)

arrays struct swift

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

在Swift 4中从数组中删除特定对象

我试图从数组保持事件对象中删除特定的Event对象(我自己的类).这是我对数组的声明.

private var positiveEvents : [Event] = []
Run Code Online (Sandbox Code Playgroud)

现在,这是我如何尝试从数组中删除Event对象.此方法(disposeOfflineEvents)每30秒调用一次,因此positiveEvents可能包含某些元素或根本不存在任何元素.

func disposeOfflineEvents() {
    for event in positiveEvents {
        if !event.ongoing {
            positiveEvents.remove(at:  positiveEvents.index(where: { $0 === event })!)
            print("! - Disposing of an event!")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我看到了这个问题,但我使用的是Swift 4,所以我没有索引(of:Event)方法.我当前的解决方案的问题是,当使用"==="检查对象的相等性时,我偶尔会遇到错误:

在此输入图像描述

有没有更好的方法呢?

swift

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

setEditing()在Swift中到底做什么?

我正在navigationItem.leftBarButtonItem = editButtonItem根据下实施viewDidLoad(),据说我也必须实施setEditing(_ editing: Bool, animated: Bool)。似乎没有setEditing功能,每个编辑功能都可以正常工作。它有什么作用??

  override func viewDidLoad() {
    super.viewDidLoad()

    navigationController?.navigationBar.prefersLargeTitles = true
    navigationItem.leftBarButtonItem = editButtonItem
    tableView.allowsMultipleSelectionDuringEditing = true
  }

    override func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: true)
        tableView.setEditing(tableView.isEditing, animated: true)
    }
Run Code Online (Sandbox Code Playgroud)

ios swift

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

你如何在Swift 4中循环AVPlayer?

我使用了以下代码:

NotificationCenter.default.addObserver(self,selector: #selector(ViewController.restartVideoFromBeginning),name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,object: nil)

@objc func restartVideoFromBeginning()  {


    let seconds : Int64 = 0
    let preferredTimeScale : Int32 = 1
    let seekTime : CMTime = CMTimeMake(seconds, preferredTimeScale)

    player!.seek(to: seekTime)

    player!.play()

}
Run Code Online (Sandbox Code Playgroud)

但是里面的玩家restartVideoFromBeginning有零值,有谁知道为什么?

swift

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

为什么我不能使用单个 equals(=) 作为我的 while 循环条件的一部分?

我曾经使用此代码来获取对应UIViewController的我的UIView:

func parentVC(forView view: UIView) -> UIViewController? {
    var responder = view as UIResponder
    while (responder != nil) {
        if let viewController = responder as? UIViewController {
            return viewController
        }
        responder = responder.next!
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到了编译器的警告:

将“UIResponder”类型的非可选值与“nil”进行比较总是返回true

所以我尝试responder = responder.next!在while循环条件内移动:

func parentVC(forView view: UIView) -> UIViewController? {
    var responder = view as UIResponder
    while (responder = responder.next!) {
        if let viewController = responder as? UIViewController {
            return viewController
        }
    } …
Run Code Online (Sandbox Code Playgroud)

ios swift

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