小编pac*_*ion的帖子

嵌入在UIWebView中的Youtube视频在真实设备上没有声音

这就是我嵌入视频的方式.它在模拟器中有声音,但在真实设备上没有声音(iOS 9.0.2(13A452))Xcode 7.1.1.

这是我用来播放它的代码:

if let youtubeID = youtubeID {
    let embededHTML = "<html><body><iframe src=\"http://www.youtube.com/embed/\(youtubeID)?playsinline=1\" width=\"\(width)\" height=\"\(height)\" frameborder=\"0\" allowfullscreen></iframe></body></html>"
    cell!.webView.allowsInlineMediaPlayback = true
    cell!.webView.scalesPageToFit = true
    cell!.webView.mediaPlaybackAllowsAirPlay = true
    cell!.webView.mediaPlaybackRequiresUserAction = false

    cell!.webView.loadHTMLString(embededHTML, baseURL: NSBundle.mainBundle().bundleURL)
}
Run Code Online (Sandbox Code Playgroud)

uiwebview ios swift ios9

4
推荐指数
3
解决办法
3699
查看次数

无法将比较结果转换为闭包结果类型 Bool

这是我的代码:

var data = [list]()
var filtered = [list]()

struct list {
    var label1 : String = ""
    var label2 : String = ""
    var label3 : String = ""
}


func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {

    filtered = data.filter { $0.label1.localizedCaseInsensitiveCompare(searchText) }
    if(filtered.count == 0){
        searchActive = false;
    } else {
        searchActive = true;
    }


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

我从 sql 查询结果添加到列表,它们看起来很好,但是当我尝试实现搜索功能时,我无法构建它并出现错误:

无法将“ComparisonResult”类型的值转换为关闭结果类型“Bool”

ios swift

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

editButtonItem 不起作用

我在 UIViewController 中有一个表视图,启用了编辑功能以删除行。从右侧滑动可以删除行,并且导航栏上有编辑按钮,但除了从“编辑”切换到“完成”之外,它实际上没有执行任何操作。

这是我创建表视图的方法。

override func viewWillAppear(animated: Bool) {
    for view in self.view.subviews {
        view.removeFromSuperview()
    }

    if sharedCart.shoppingCart.isEmpty {
        self.navigationItem.rightBarButtonItem = nil

        isEmptyLabel = UILabel(frame: CGRectMake(self.view.frame.width / 2, self.view.frame.height / 2, self.view.frame.width, self.view.frame.height))
        isEmptyLabel.center = self.view.center
        isEmptyLabel.text = "Your cart is empty."
        isEmptyLabel.textAlignment = .Center
        isEmptyLabel.textColor = UIColor.whiteColor()
        isEmptyLabel.font = UIFont(name: "Helvetica-Light", size: 20.0)

        self.view.addSubview(isEmptyLabel)
    } else {
        isEmptyLabel.removeFromSuperview()
        total = 0

        let editItem = self.editButtonItem()
        self.navigationItem.rightBarButtonItem = editItem

        tableView = UITableView(frame: self.view.frame, style: .Grouped)
        tableView.delegate = self
        tableView.dataSource = …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift

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

iOS Swift中的UIDocumentPickerController的文档文件问题?

我正在使用下面的代码来显示文档选择器。当我显示选择器时,我使用下面的代码

let documentPickerController = UIDocumentPickerViewController(documentTypes: [String(kUTTypeText), String(kUTTypePDF), String(kUTTypePNG), String(kUTTypeJPEG), String(kUTTypePlainText), String(kUTTypeImage)], in: .import)
Run Code Online (Sandbox Code Playgroud)

上面的代码向我显示了iCloud中的所有文件,但不允许我选择doc,docx文件。这些文件显示为已禁用。

但是当我"public.data"UIDocumentPickerViewController构造函数中添加为元素时,它允许我选择doc,docx文件和文件未显示为已禁用。

请告诉我为什么会这样吗?

xcode ios icloud swift uidocumentpickervc

3
推荐指数
2
解决办法
1130
查看次数

如何删除 UIBarButtonItem 左侧的填充?

我想使用自定义视图 作为 UINavigationController 中留下的 UIBarButtonItem,是否可以删除此处的左侧填充?

我已经尝试过了:

let  btn = UIButton()
btn.frame = CGRect(x: -50, y: -50, width: 44, height: 50)
btn.setImage(UIImage(name:"img").withRenderingMode(.alwaysTemplate), for: .normal)
btn.addTarget(self, action: #selector(openSetting), for: .touchUpInside)

let leftButtonBar = UIBarButtonItem(customView: btn)

self.navigationItem.leftBarButtonItems = ( [leftButtonBar , otherBtn ])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何删除剩余空间设置图标

更新。厌倦了这段代码:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 
view.backgroundColor = .gray
let  btn = UIButton()
btn.frame = CGRect(x: -15, y: 0, width: 44, height: 50)
btn.setImage(UIImage(name:"img").withRenderingMode(.alwaysTemplate), for: .normal)
btn.addTarget(self, action: #selector(DashboardTabBarController.openSetting), for: .touchUpInside) …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller ios swift

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

如何使用 RxSwift 订阅数组更改?

我有一个简单的数组:

var similarObjects: [Objects] = []

我如何才能看到他的变化:

similarObjects = someArray

我尝试:(结果:下一步 -> 完成)

_ = Observable.just(similarObjects)
     .subscribe({ event in
         return print(event.element)
     })
Run Code Online (Sandbox Code Playgroud)

swift rx-swift

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

如何让 SnapKit 约束左右边缘?

现在如果我想将左侧和右侧的边距设置为相等,则需要两行:

label.snp.makeConstraints { make in
    make.left.equalTo(Constants.margin)
    make.right.equalTo(-Constants.margin)
}
Run Code Online (Sandbox Code Playgroud)

API 还允许我使用以下命令一次设置所有 4 个(左/右/上/下)边缘:

label.snp.makeConstraints { make in
    make.edges.equalTo(Constants.margin
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能编写一个允许这样的扩展?

label.snp.makeConstraints { make in
    make.horizontalMargins.equalTo(Constants.margin)
}
Run Code Online (Sandbox Code Playgroud)

结果应等于第一个代码片段。

ios swift snapkit

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

从呈现的视图控制器访问呈现视图控制器?

我有一个视图控制器(包含我的菜单)呈现在另一个视图控制器(我的应用程序)之上.

我需要从呈现的视图控制器(我的菜单)访问呈现视图控制器(在我的菜单下面),例如访问一些变量或使呈现视图控制器执行其中一个segue.

但是,我只是想不通怎么做.我知道"presentsViewController"和"presentsViewController"变量,但我没有设法成功使用它们.

任何的想法 ?

代码(来自提供的VC,作为引用窗口的AppDelegate的引用):

if let presentingViewController = self.appDelegate.window?.rootViewController?.presentingViewController {
    presentingViewController.performSegue(withIdentifier: "nameOfMySegue", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller swift swift3

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

为什么Swift不允许对非可选类型使用弱引用?

这并不是纯粹的好奇心,我可能会误解一些关于Swift中弱引用的东西。

假设我从View Controller创建一个类,并将其引用传递给初始化程序:

class = MyClass(vc: self)
Run Code Online (Sandbox Code Playgroud)

由于情节提要和窗口已经保留了对该View Controller的引用,因此MyClass对它的弱引用似乎是合乎逻辑的(出于类似原因,默认情况下,在IB中创建的所有引用都是弱的):

class MyClass: NSObject {
    private weak var viewController: UIViewController

    init(vc: UIViewController) {
       self.viewController = vc
       super.init
    }

    func setViewController(_ vc: UIViewController) {
       self.viewController = vc
    }

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

但是,此代码会产生编译错误,因为viewController变量不是可选的。所以我必须加'!' 查看viewController声明并删除初始化程序,仅留下setViewController看起来不太自然的内容。

禁止非可选的弱数据的背后原因是什么?

weak-references optional swift

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

如何向 SimulatorTrampoline 添加访问特定文件夹的权限

macOS Catalina 提供了一种访问/拒绝文件和文件夹的新方法。
突然,我拒绝了SimulatorTrampoline对我的Documents文件夹的访问请求,并且可以将其取回。
此外,安全和隐私 > 隐私 Full Disk Access并且Files and Folders不包含有关此拒绝请求的任何信息。
基本上,问题是如何重新添加此权限?也许某种 bash 脚本可以在这里提供帮助?

ios-simulator xcode11 macos-catalina

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