小编Swi*_*bit的帖子

iOS 11 UITableView错误

可以使用此处的repo重现该错误.

我的UITableView中有一个影响iOS 11项目的奇怪错误.有问题的TableView被分组,具有可扩展的单元格.

我的iOS 10分支上没有出现许多奇怪的效果:

  1. 标题重叠
  2. 当单元格折叠发生时,当内容大小高于UITableView容器大小时,会出现奇怪的传送问题
  3. 当内容大小超过容器大小时,在滚动开始时奇怪的传送到tableview顶部
  4. 细胞大小是错误的(经常)

此处还有Apple开发者论坛上的相关票证.

我试过没有任何成功:

if #available(iOS 11.0, *) {
    tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentBehavior.never
}
Run Code Online (Sandbox Code Playgroud)

我试图找到iOS 11中可能导致此问题的更改行为.

任何帮助,将不胜感激!

编辑:剪切到边界有帮助(但最终,它隐藏/剪辑问题).我还有一些问题(2,3和4).当我试图解开一个细胞时,它会传送回顶部,而不是顺利进行.当我打开一个单元格并想要顺利滚动到它时,它会传送到顶部然后只滚动到它.(必须添加一个额外的部分来显示).

这是一个问题的视频(使用iPhone 7 Plus,iOS 11,Xcode 9 Golden Master):https://youtu.be/XfxcmmPdeoU

在此输入图像描述

uitableview ios swift ios11

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

检测UITextView上的点击

我一直在努力用Swift检测UITextView上的点击.

我的UITextViews在一个表中,我必须能够检测链接并按下它们,这些链接长度未知.

此外,如果我点击单元格,我没有点击链接,我想在我的导航控制器堆栈上推送一个新的UIViewController.

我试图创建自己的textview来覆盖touchesCancelled,但这并不成功.它检测到在实际设备上不被视为点击的取消.

该模拟器中不会出现该错误,但似乎我无法点击真实设备,只需长按即可.

class LinkTextView: UITextView {
    override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
         self.textViewWasTapped(self) 
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试直接添加手势识别器.我也没有任何成功.它根本不会调用手势识别器.

我将UIGestureReconizer委托添加到我的UIViewController和我的那些行中

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
     var singleTap : UIGestureRecognizer = UIGestureRecognizer(target: self, action: "tapTextView:")
        singleTap.delegate = self
             cell.mTextOutlet.attributedText = myMutableString
             cell.mTextOutlet.addGestureRecognizer(singleTap) 
Run Code Online (Sandbox Code Playgroud)

在我的LinkTextView类中:

class LinkTextView: UITextView {
    func tapTextView(stapGesture: UIGestureRecognizer){
        println("TAPPING1")
    }
}
Run Code Online (Sandbox Code Playgroud)

我看了论坛,发现这篇文章:发帖.它建议使用CHHLinkTextView.我尝试使用它,但我想要的是自动检测链接,正常的uitextview实际上是这样.

我尝试使用界面构建器中的checkBox来解析CHHLinkTextView的链接,但它不起作用.我没有在文档中看到任何暗示它可以完成的内容.

我该怎么办?

uitextview uigesturerecognizer ios swift

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

使用 iCloud PHAsset 请求 AVAsset 返回一个没有 VideoTracks 的 AVAsset

最近,开始注意到从照片库导入某些资产时没有显示它们。有问题的资产存储在 iCloud 中,不会缓存在设备上。我相信这是一个 iOS 14 问题,因为我从未在 iOS 13 上遇到过这个问题。(我不是 100% 确定,因为我无法将我的个人设备推出到 iOS 13)。

这是我在iOS 14 中所做的:

  1. 使用新的选择器视图控制器导入视频资产
var configuration = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared())
configuration.filter = PHPickerFilter.videos
let videoPickerController = PHPickerViewController(configuration: configuration)
videoPickerController.delegate = self
present(videoPickerController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
  1. 我从 [PHPickerResult](委托方法)中提取 PHAsset
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
  picker.dismiss(animated: true, completion: nil)
  guard results.count > 0 else {
    return
  }
  guard let firstPHAssetIdentifier = results.first?.assetIdentifier else {
    fatalError("No asset identifier")
  }
  let fetchOptions = PHFetchOptions()
  guard let …
Run Code Online (Sandbox Code Playgroud)

ios icloud avasset swift ios14

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

结合CoreML和ARKit

我正在尝试使用Apple 网站上给定的inceptionV3模型将CoreML和ARKit结合到我的项目中.

我从ARKit的标准模板开始(Xcode 9 beta 3)

我重用了ARSCNView启动的会话,而不是对新的摄像机会话进行归属.

在我的viewDelegate结束时,我写道:

sceneView.session.delegate = self
Run Code Online (Sandbox Code Playgroud)

然后我扩展我的viewController以符合ARSessionDelegate协议(可选协议)

// MARK: ARSessionDelegate
extension ViewController: ARSessionDelegate {

    func session(_ session: ARSession, didUpdate frame: ARFrame) {

        do {
            let prediction = try self.model.prediction(image: frame.capturedImage)
            DispatchQueue.main.async {
                if let prob = prediction.classLabelProbs[prediction.classLabel] {
                    self.textLabel.text = "\(prediction.classLabel) \(String(describing: prob))"
                }
            }
        }
        catch let error as NSError {
            print("Unexpected error ocurred: \(error.localizedDescription).")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

起初我尝试了这段代码,但后来发现初始版需要像Image类型的像素缓冲区.<RGB,<299,299>.

虽然没有重新开始,但我想我只是调整框架的大小然后尝试从中获得预测.我正在调整使用此功能(从https://github.com/yulingtianxia/Core-ML-Sample获取)

func resize(pixelBuffer: CVPixelBuffer) -> CVPixelBuffer? {
    let imageSide = …
Run Code Online (Sandbox Code Playgroud)

swift ios11 xcode9-beta arkit coreml

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