我创建了一个聊天用户界面,我在其中添加了一个constraint用于tableView屏幕底部的.我正在通过添加键盘的高度来更改约束值,该键盘在除iPhone X之外的所有设备中都能正常工作.
键盘不可见时的UI:
哪个好.
问题是当键盘出现空白区域在textView和键盘之间可见时:
我是否必须为此尝试不同的方法,或者可以使用约束来解决它?
我UIAlertController将主线程呈现为:
class HelperMethodClass: NSObject {
class func showAlertMessage(message:String, viewController: UIViewController) {
let alertMessage = UIAlertController(title: "", message: message, preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "Ok", style: .cancel)
alertMessage.addAction(cancelAction)
DispatchQueue.main.async {
viewController.present(alertMessage, animated: true, completion: nil)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我从任何方面调用方法UIViewController:
HelperMethodClass.showAlertMessage(message: "Any Message", viewController: self)
Run Code Online (Sandbox Code Playgroud)
我正确地得到了输出.
但在控制台中,我收到以下消息:
[Assert]在非主线程上无法使用asCopy = NO调用.
我在这里做错了什么,或者我可以忽略这个消息?
编辑
感谢@NicolasMiari:
添加以下代码不会显示任何消息:
DispatchQueue.main.async {
HelperMethodClass.showAlertMessage(message: "Any Message", viewController: self)
}
Run Code Online (Sandbox Code Playgroud)
之前它在控制台中显示消息的原因是什么?
我正在更新我的应用以适应Apple的新ATS.如果没有对Plist-Info进行任何更改,以下代码会在vanilla`iOS sendSynchronousRequest()9模拟器中引发错误.
NSURL *url =[NSURL URLWithString:@"https://Google.com"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setHTTPMethod:@"GET"];
[request setURL:url];
NSURLResponse *urlResponse = nil;
NSError *error = nil;
NSData *reponse = [NSURLConnection sendSynchronousRequest:request
returningResponse:&urlResponse
error:&error];
Run Code Online (Sandbox Code Playgroud)
错误:
NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9802)
有关这个问题可能背后的想法吗?
Ps:据我所知,NSURLConnection已被弃用.但是如果我加入AllowArbitraryLoads,这个调用就可以找到Plist.
推出iOS11 trailingSwipeActionsConfigurationForRowAt(并领先......).这是否意味着我现在必须实施
editActionsForRowAt 对于iOS10? 如何让模拟器运行iOS10模拟以查看我的应用程序在后台操作系统中的行为?由于现在一切都是iOS11,我不确定我的应用程序将在该版本中如何?
澄清:我想要对行进行操作,但我不想要iOS11中的默认行为performsFirstActionWithFullSwipe.如果我只是实现,editActionsForRowAt那么iOS11会完全滑动.
通常,VoiceOver正确读取加载的网页内容,WKWebView并且可以读取按钮和链接。
但是,?当我说WKWebView对UITableViewCell,并显示在UITableVIew,VoiceOver无法识别它。
根据苹果的tableview文档,为了让每个内容都分别UITableViewCell被识别VoiceOver,需要将isAccessibilityElementcell设置为false isAccessibilityElement,view设置为true。
但如果isAccesibilityElementofWKWebView设置为 true,视图本身是聚焦的,我们无法识别内部网页内容。
此外,VoiceOver在加载 Web 内容后第一次启用时,它执行了可以识别 Web 内容的奇怪行为。
怀疑是VoiceOver内容识别时序的问题,我试了一下运行
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)
Run Code Online (Sandbox Code Playgroud)
或者
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil)
Run Code Online (Sandbox Code Playgroud)
加载网页内容后,却没有得到好的结果。
是否有处理内容的一个好办法wkwebview上tableView到VoiceOver?
我遇到的问题是使用Alamofirexcode UI 测试。
我已尽可能地将各个部分隔离开来,试图找出问题可能出在哪里,但仍然无法解决这个问题。通过使用 swift 的新 xcode 项目,我可以Alamofire按预期使用 mainViewController.swift和func viewDidLoad()函数,但是在创建 UI 测试时,我无法在函数中使用相同的代码func testExample()。
使用的工具版本:
\n\nXcode = 9.2(9C40b) \nSwift = 4.0\ncocoapods = 1.4.0 \nmacOS = High Sierra Version 10.13.2 (17C205) \nAlamofire = 4.5 \nRun Code Online (Sandbox Code Playgroud)\n\nViewController.swift - 工作正常
\n\nimport UIKit\nimport Alamofire\n\nclass ViewController: UIViewController {\n\n override func viewDidLoad() {\n super.viewDidLoad()\n // Do any additional setup after loading the view, typically from a nib.\n\n Alamofire.request("https://httpbin.org/get").responseJSON { response in\n print("Request: …Run Code Online (Sandbox Code Playgroud) Firebase在我的Android应用程序中有一个经过身份验证的用户。Webview在Android加载HTML页面的同一个应用程序中,需要Firebase通过Javascript.
对于Webview访问Firebase数据库,需要在再次进行身份验证javascript。我可以使用signInWithCustomToken(),但AndroidApp 无法创建自定义令牌,每次都必须调用 Server 来创建CustomToken并将其传递给webview.
有什么办法可以将 Authentication From AndroidApp传递到Webview里面吗?
我想选择并滚动到一个特定indexPath的collectionView中心.我找到了这些功能,但不可能将它们组合起来:
collectionView.selectItem(at: indexPath, animated: true, scrollPosition: UICollectionViewScrollPosition.centeredVertically)
collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
collectionView.scrollToItem(at: indexPath, at: .centeredVertically, animated: true)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
如何设置此特定设置的背景图像?iOS10和XCode8.1?我尝试了下面的一切:
UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")!.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .stretch), for: .default)
UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")! , for: .any, barMetrics: .default)
UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")! , for: .default)
Run Code Online (Sandbox Code Playgroud)
我能设置的颜色navigationBar使用storyboard,但不能设置图像.
我添加了2个stackview具有不同大小的视图。现在,当我单击任何视图的加号按钮时,我只想在该视图的正下方添加一个视图。
我正在通过以下方式查看:
let index = superView.subviews.index(of: view)
Run Code Online (Sandbox Code Playgroud)
然后我在做:
superView.insertArrangedSubview(newView, index + 1)
Run Code Online (Sandbox Code Playgroud)
但实际上它是在不同位置添加新视图。
因此,如果我尝试获取索引,.subview.index那么它将始终返回最后一个索引