Tag: swift

使用mediaTypevideo从PHAsset修改元数据失败

我尝试使用mediaType == .video从PHAsset添加/修改元数据我发现一些问题mediaType == .video了类似的问题: 如何使用AVAssetWriter更改video元数据? 使用AVFoundation将自定义元数据添加到video 关于这些问题的答案,我构build了以下代码片段,它是PHAsset的扩展: let options = PHVideoRequestOptions() options.version = .original PHImageManager.default().requestAVAsset(forVideo: self, options: options, resultHandler: { asset, audioMix, info in if asset != nil && asset!.isKind(of: AVURLAsset.self) { let urlAsset = asset as! AVURLAsset let start = CMTimeMakeWithSeconds(0.0, 1) let duration = asset!.duration var exportSession = AVAssetExportSession(asset: asset!, presetName: AVAssetExportPresetPassthrough) […]

iOS,Swift 3 – 当我从Detail View返回后点击Cancel时,UISearchBar消失

我有一个containerView的tableView。 以编程方式向其添加了一个searchBar。 一切工作正常,除了情况:当我点击一个单元格,而tableView是由searchBar过滤,然后我从detailView返回(这是通过推塞格呈现),然后我closuressearchBar(取消button) ,那么searchBar就会消失。 神秘的是,当我在控制台上debugging时,searchBar对象仍然存在,它仍然是tableView的headerView …任何人有一个想法,什么可能会导致这个问题,以及如何解决它? 这是我的相关代码: 在viewDidLoad中: self.searchController.searchResultsUpdater = self self.searchController.delegate = self self.searchController.dimsBackgroundDuringPresentation = false self.searchController.hidesNavigationBarDuringPresentation = false self.searchController.definesPresentationContext = false self.tableView.tableHeaderView = self.searchController.searchBar searchControllerDelegate: func willPresentSearchController(_ searchController: UISearchController) { if let mpvc = self.parent as? MyPulleyViewController { mpvc.navigationController?.navigationBar.isTranslucent = true } } func willDismissSearchController(_ searchController: UISearchController) { if let mpvc = self.parent […]

如何在iOS(AVFoundation或其他第三方库)中使用HLS时间平移function,如Android中的ExoPlayer?

我想在iOS播放器中使用时间平移(用于直播video)function,但是我没有发现支持时间平移的库。 我读了很多这样的图书馆的文件: 1- piemonte 2- kaltura 在Android中,谷歌引入了ExoPlayer ,可以轻松地给我们提供这个function。 我如何在iOS(通过swift)实现这个function? 或者有没有实现这个的库?

创buildUIAlertController而不显示它会产生警告

创buildUIAlertController而不显示它时,会在控制台中打印一条警告。 这是为什么? override func viewDidLoad() { super.viewDidLoad() let _ = UIAlertController(title: "title", message: "message", preferredStyle: .Alert) } 尝试加载视图控制器的视图时,它是释放是不允许的,并可能导致未定义的行为 编辑: 这个警告是否安全可以忽略? 如果UIAlertController已经创build好了,我决定不出示/使用它,我该怎么办?

使用AFNetworking将图像上传到服务器达到了损坏

我一直在努力上传一个图像到服务器,它成功上传,但在服务器端,如果我试图打开它说cannot be displayed because it contains errors的图像, cannot be displayed because it contains errors 。我使用AFNetworking转换成JPEGRepresentation后上传图像。 let uploadManager : AFHTTPSessionManager = AFHTTPSessionManager() uploadManager.responseSerializer = AFHTTPResponseSerializer() as AFHTTPResponseSerializer uploadManager.requestSerializer = AFHTTPRequestSerializer() as AFHTTPRequestSerializer uploadManager.requestSerializer.timeoutInterval = 20 uploadManager.POST(baseURL, parameters: nil, constructingBodyWithBlock: { (formData) -> Void in let selectedImage = self.userImage.image let imageData : NSData = UIImageJPEGRepresentation(selectedImage!, 0.5)! formData.appendPartWithFileData(imageData, […]

在Swift中,我怎样才能改变一部分string的属性?

我正试图用一些文字显示分数。 分数显示在一个句子的中间,我希望字体的分数大于文本的其余部分。 我的代码如下: let fontSizeAttribute = [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 43)] let myString = String(describing: Int(finalScore!.rounded(toPlaces: 0))) let attributedString = NSAttributedString(string: myString, attributes: fontSizeAttribute) scoreLabel.text = "Your score is \(attributedString)%, which is much higher than most people." 我看不出这个实现有什么问题,但是当我运行它时,它说:“你的分数是9 {NSFont =”UITCFont:0x7f815 … 我觉得我正在做一些愚蠢的事情,但不知道它是什么。 任何帮助,将不胜感激!

用Swift 3在iOS10中设置UIDatePicker的字体

是否有一个公共的界面来设置Swift 3 UIDatePicker的字体 ? 我很清楚类似的问题已经被问到,主要是询问如何改变UIDatePicker中标签的颜色。 使用类似datePicker.setValue(UIColor.someColor, forKey: "textColor")正在访问一个私有属性,这可能会引起一些眉毛。 而使用appearanceWhenContainedIn既不暴露标签的textColor也不暴露其字体: UILabel.appearance(whenContainedInInstancesOf: [UIDatePicker.self]).??? 那么,是否有正式的方式来改变UIDatePicker的字体? 或者我应该从头开始build立一个dateselect器?

嵌套的UIPageViewcontroller转换

我正在与UIPageViewController和我想要的是嵌套的UIPageViewControllers。 这是我想要实现的解释: 有两个UIPageViewController:1. BasePageController 2. SecondPageController 在SecondPageController中,有2个子viewController:ViewController1&ViewController2。 这里是BasePageController的代码: class BasePageController: UIPageViewController { lazy var orderedViewControllers: [UIViewController] = { return [self.newVc(identifier: "SecondPageController"), self.newVc(identifier: “ViewController3”)] }() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.delegate = self self.dataSource = self if let firstViewController = orderedViewControllers.first { setViewControllers([firstViewController], direction: .forward, animated: true, […]

Firebase .childAdded和活动指标

当我在API调用之前开始活动指示器并停止之后,我遇到了一个问题,但是如果使用.childAdded填充TableView,则无法正确执行此操作。 由于.childAdded只有在添加子项时才会调用,所以我的活动指标始终在加载。 例如: func parseData() { self.activityIndicator.startAnimating() DataService.instance.SOME_DATA.observe(.childAdded, with: { (snapshot) in if let snapshot = snapshot.value as? Dictionary<String, Any> { let data = someData(data: snapshot) self.array.append(data) } DispatchQueue.main.async { self.tableView.reloadData() self.activityIndicator.stopAnimating() } }) } 所以基本上,如果没有任何价值.childAdded将不会被调用,活动指标将永远不会停止,因为它只有当重新加载tableView时停止。 可以请一些build议如何正确地做到这一点? 非常感激。 根据build议的答案进行一些更新 : 我将举一个基于聊天应用的例子,这会更容易理解。 我有以下的数据库结构: user_messages unique_user_id unique_user_chat_id unique_message_1 unique_message_2 unique_message_3 unique_message_4 messages unique_message_1 text… unique_message_2 text… unique_message_3 […]

什么约束会阻止我的UIView堆叠在一起呢?

我的UIView是堆叠在一起,像这样: 每个UIView都在wordContainer 。 每个UIView都有两个UILabel 我创build每个单独的UIView与两个孩子UILabel的是这样的: var labels = [UIView]() for word in words { let wordLabel = UILabel(frame: CGRectZero) wordLabel.text = word.valueForKey("sanskrit") as? String wordLabel.numberOfLines = 0 wordLabel.sizeToFit() wordLabel.translatesAutoresizingMaskIntoConstraints = false let englishWordLabel = UILabel(frame: CGRectMake(wordLabel.frame.width + 10,0,0,0)) englishWordLabel.text = word.valueForKey("english") as? String) englishWordLabel.numberOfLines = 0 englishWordLabel.sizeToFit() englishWordLabel.lineBreakMode = .ByWordWrapping englishWordLabel.translatesAutoresizingMaskIntoConstraints = false let wordView […]