为什么只有程序员是不够的 首先要消除一下歧义,我们见过无数的一人独挑大梁完爆数十人团队的例子,所以事实证明,只有一个程序员,某些时候是足够的。...用户完成一个操作,需要做几次操作,需要做什么样的操作,PC 上是鼠标左击、右击、滑动还是其他,移动端是滑动、点按、长按亦或重按。...那么作为程序员,你应该能看得懂 #6B4449 是什么意思,并具有把它转换成 RGB 或 HSB 数值的能力,这样可以保证你在遇到了相对糟糕的设计师的时候,也能完成任务。...UIAlertController 上面这个是 iOS 系统提供的控件 - UIAlertController,这个东西在程序员眼里表现起来是这样的: let alert = UIAlertController...当然你可以把上面那张图也做出来给程序员预览,防止出错,但是你要明白这个东西是 iOS 系统提供的,UIAlertController 是现成可调用的 API,你要做的是只是提供调用这个 API 需要的参数
还有当文本框内容改变时,调用alertViewShouldEnableOtherButton:方法可以让按钮动态地可用或者不可用。 ...要说明一点,苹果官方现在并不提倡在iOS 8中使用UIAlertView,取而代之的是UIAlertController。下面我们就来介绍UIAlertController的使用方法。...2 UIAlertController 在iOS 8中,UIAlertController在功能上是和UIAlertView以及UIActionSheet相同的,UIAlertController...alertController, animated: true, completion: nil) iPhone上的上拉菜单效果 如果上拉菜单中有“取消”按钮的话,那么它永远都会出现在菜单的底部...具体表现是:在项目中,自定义AlertView实例的生命周期是在plugin中管理的,plugin差不多是单例模式,故自定义AlertView实例不会轻易释放,只有下一次调用插件时,实例进行替换时才会将上一实例释放
完成后的操作将会在任意的后台队列中异步执行; 如果需要更改UI,请确保在主队列中执行。...一定要注意键就是图片的名字,这样在调用上面的API传入图片名时才能够找到对应的键值对,否则会变更失败,控制台会显示找不到文件。 使用方法 首先我们在界面上放两个按钮,点击响应就是要更换成不同的图标。...去掉变更图标时的提示框 这个提示框是用 UIAlertController 来实现的,而所有的 UIAlertController 都是通过 presentViewController: animated...的 title 和 message 是否都为 nil,是的话就直接返回,也就不会弹出了;不是的话就正常弹出,这个我们通过调用系统的实现就可以了。...注意我们交换方法时交换的仅仅是方法的实现IMP,所以交换之后,我们如果想要再调用原本系统的实现,需要调用的反而是我们自己的方法名SEL: #import - (void
最新项目使用网页加载页面的基本上都由UIWebView转到WKWebView了,然后刚刚才发现用了WKWebView之后不会弹窗提示了,查了一下知道原来WKWebView默认禁止了下面的跳转: 打开itunes.apple.com...* alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message ?...*alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message ?...(WKFrameInfo *)frame completionHandler:(void (^)(NSString * _Nullable))completionHandler { UIAlertController...textField.text = defaultText; }]; UIAlertAction * action = [UIAlertAction actionWithTitle:@"完成
{ //页面加载完成时 webView.evaluateJavaScript( "document.documentElement.style.webkitUserSelect='none...{ //页面加载完成时 for subview in webView.scrollView.subviews { if(subview.gestureRecognizers !...(title: "提示", message:message, preferredStyle: UIAlertController.Style.alert) let cancelAction = UIAlertAction.init...alertTextField = UIAlertController.init(title: "请输入", message: "JS调用输入框", preferredStyle: UIAlertController.Style.alert...{ //页面加载完成时 for subview in webView.scrollView.subviews { if(subview.gestureRecognizers !
= [UIAlertController alertControllerWithTitle:@"js调用到了oc" message:@"不带参数" preferredStyle:UIAlertControllerStyleAlert...*alertController = [UIAlertController alertControllerWithTitle:@"js调用到了oc" message:parameter[@"params...- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation { } // 页面加载完成之后调用...*alertController = [UIAlertController alertControllerWithTitle:@"通过截取URL调用OC" message:@"你想前往我的Github...OC调用JS //OC调用JS changeColor()是JS方法名,completionHandler是异步回调block NSString *jsString = [NSString
要说起移动支付App调用支付支付可谓是已经不再新鲜啦,楼主第一次接触App调用支付还是N年前的事情---依稀似乎记得那时是懵逼的就完成了。...支付宝为移动端的开发提供两种下单支付的方式: 1 App内部完成自签名 2服务端完成签名,App负责传递单据信息给支付宝完成下单 因为支付宝不推荐App内部完成自签名下单,因此1的流程我们忽略……因此我们的重点就来到了如何调用...这里不得不吐槽一下,支付宝的官网只说需要URL Schemes要特别一点不要与其他人重复了,却不给出具体有效合理规则建议 发起支付 如上图所示吧,自己App服务器提供下单服务自不必说,说说我们SDK初始化与调用...*alert = [UIAlertController alertControllerWithTitle:@"支付成功" message:@"请到\"我的订单\"查看" preferredStyle:...*alert = [UIAlertController alertControllerWithTitle:@"支付失败" message:@"请到\"我的订单\"重新支付" preferredStyle
console.log(e) } } 1、iOS调用...js中点击按钮,进行弹窗实现 //MARK:WKUIDelegate //此方法作为js的alert方法接口的实现,默认弹出窗口应该只有提示消息,及一个确认按钮,当然可以添加更多按钮以及其他内容,但是并不会起到什么作用...= defaultText } alertViewController.addAction(UIAlertAction(title: "完成", style: UIAlertAction.Style.default...})) self.present(alertViewController, animated: true, completion: nil) } 4、获取网页中节点的数据 //网页加载完成...返回与该模式匹配的所有元素,结果为一个类数组 六、JavaScriptCore JavaScriptCore 这个库是 Apple 在 iOS 7 之后加入到标准库的,它对 iOS Native 与 JS 做交互调用产生了划时代的影响
完成后的操作将会在任意的后台队列中异步执行; 如果需要更改UI,请确保在主队列中执行. - (void)setAlternateIconName:(nullable NSString *)alternateIconName...UIPrerenderedIcon,其值类型为bool,内容为NO,也可以不加此key),例如: 把第一步中添加的图片全部添加进来就是这样的: 到此,info.plist的配置即完成了...3,编写代码 配置完成后,代码部分就比较简单了: - (void)changeAppIconWithName:(NSString *)iconName { if (!...if (error) { NSLog(@"更换app图标发生错误了 : %@",error); } }]; } 在需要修改icon的地方调用这个方法...NSLog(@"message : %@",((UIAlertController *)viewControllerToPresent).message); UIAlertController
= nil) -> Bool 或者 RootViewController中的viewDidload 中调用present来弹出一个警告窗口(由UIAlertController创建的controller...),这时候无法弹出窗口,并出现如下警告: Warning: Attempt to present UIAlertController: 0x102809200> on 完成显示步骤(whose view is not in the window hierarchy),正常情况下我们需要在viewDidAppear之后才能成功
第四天任务: 今天主要任务完成精华模块的搭建。...titleView也是添加在主控制器上,显示在scrollView上面,保证titleView永远显示在主控制器的View上,不会随着scrollView的滚动而滚动。...也就是说即使调用了[setcontentoffset animated ]方法,但是如果scrollView的contentoffset并没有改变也不会调用 didEndScrollingAnimation...其实这里add方法是不会重复添加的,即使添加成千上万次也只会添加一次。 至此,精华界面的搭建已经基本完成,接下来要做的就是内容的显示,以及内容中一些细节之处的设置。...UIAlertController的简单使用 iOS8 之后UIAlertController的使用非常简单,右上角更多按钮点击事件 - (IBAction)moreClick { UIAlertController
(拍照过程消耗了大量内存,导致内存紧张,WebContent Process 被系统挂起),但上面的回调函数并没有被调用。...WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie。...has finish push or present animation*/) { completionHandler(); return; } UIAlertController...animated:YES completion:^{}]; else completionHandler(); } 确保上面两种情况下 completionHandler 都能被执行,消除了...8.2、goBack API问题 WKWebView 上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload()函数、不会执行JS。
(拍照过程消耗了大量内存,导致内存紧张,webContent process被系统挂起),但上面的回调函数并没有被调用。...WKWebView Cookie问题在于WKWebView发起的请求不会自动带上存储于NSHTTPCookieStorage容器中的Cookie。...has finish push or present animation*/) { completionHandler(); return; } UIAlertController...animated:YES completion:^{}]; else completionHandler(); } 确保上面两种情况下completionHandler都能被执行,消除了...8.2、goBack API问题 WKWebView上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload()函数、不会执行JS。
iOS 8 以后actionsheet 和 alertview 都统一用UIAlertController 方法调用,8.3以前actionsheet 有独立的方法 后来都废弃了。...UIActionSheetDelegate { } @IBAction func selectImageAction(sender: AnyObject) { let actionSheetController: UIAlertController...= UIAlertController(title: "请选择", message:nil, preferredStyle: .ActionSheet) //取消按钮 let cancelAction...self.presentViewController(actionSheetController, animated: true, completion: nil) } 这样我们想要的actionSheet 创建完成
具体实现就是点击游戏内换自定义头像的按钮后,调用不同平台相应的方法,获取用户选择的图片数据,然后将图片裁剪再传给后台保存至特定的目录下。...原因是UIActionSheet在ios8中已经被弃用了(点击查看详情>>),使用UIAlertController进行替代,这里有两篇文件介绍它: UIAlertController in IOS8>...> UIAlertController>> 跟踪代码后,发现它在调用UIPopoverController的presentPopoverFromRect方法后,直接就调用了popoverControllerDidDismissPopover...因为很多问题我跟测试他们讲,再让我解那个bug,我不会想到那个地方上去。 最近一次更新功能之后,IOS设备上的重启按钮,点击后游戏直接闪退了,概率比较高。...断言的这行代码直接挂掉了,再往上一个调用,来源于CCINode.cpp,网上又搜索了一下,我们使用的代码是将网上的代码修改了一下,也没发现问题,貌似无解了。
UIStatusBarStyle.LightContent; } override func prefersStatusBarHidden() -> Bool { return false; } 最后,在需要刷新状态栏样式的时候,调用...setNeedsStatusBarAppearanceUpdate]方法即可刷新 注意: [self setNeedsStatusBarAppearanceUpdate]在push或者 present的controller里面调用才起作用...示例代码如下: UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert" message:@"...automaticallyAdjustsScrollViewInsets 属性的解释不一样: iOS8 会把该属性的影响作用到 controller 的 view 的 subviews 上 iOS7 仅会作用到 self.view 上 另外当你还需要手动调用...contentInset 的时候,iOS7 似乎就不会自动调整了。
不要调用super.loadView()。 不要手动调用该方法。...在程序中需要跳转的地方调用performSegue(withIdentifier: , sender:)方法完成跳转。 纯代码 跳转界面:present。 返回界面:dismiss。...在需要传值的地方调用代理属性的方法完成传值。 代理对象(接收值的 UIViewController) 实现被代理对象声明的协议,实现协议中的方法,拿到传过来的值进行使用。...在需要传值的地方调用闭包完成传值。 接收值的 UIViewController 实现需要传值的 UIViewController 中的闭包属性,在闭包的实现中拿到传过来的值进行使用。...常见ViewController UIAlertController 警告(对话框)控制器。 用一个对话框进行信息的提示,通过模态形式弹出。 有两种样式:alert和actionSheet。
用户选择头像功能是最常见的调用相机相册场景,调用系统的方法会存在两个问题:1.除了UIImagePickerController的拍照页面,UISearchBar的取消按钮,键盘上的返回、完成等按钮,以及其他系统界面中带有英文的...UIImagePickerControllerDelegate> @property(strong,nonatomic)UIImagePickerController*pickerViewController; @end 在点击选择头像按钮代码: UIAlertController...*alertC = [UIAlertController alertControllerWithTitle:@"请选择图片来源" message:nil preferredStyle:UIAlertControllerStyleActionSheet
error: Error) { print("加载错误: didFailProvisionalNavigation: \(error)") } // MARK: - 需要响应身份验证时调用...WKFrameInfo, completionHandler: @escaping () -> Void) { print("alert: msg:\(message)") let alertVC = UIAlertController...completionHandler: @escaping (Bool) -> Void) { print("confirm: msg:\(message)") let alertVC = UIAlertController...print("input: prompt:\(prompt) defaultText:\(String(describing: defaultText))") let alertVC = UIAlertController...{ print("加载完成: didFinish") // 调用js方法(把标题h1设置成红色) webView.evaluateJavaScript("changeHead()
一:__weak typeof(self)报错了 ---- 这个问题我也是觉得奇怪,在我们正常的使用中一般是不会出现这种错误的!...六:AppDelegate 怎么弹出 UIAlertController 提示 ---- ?...不知道一些朋友会不会有这样的需求产生,需要你在AppDelegate中提示一些信息,可能许多人都会想到这句代码: self.window?.rootViewController?...但关键点可能还不是在这里,你要直接添加我相信你log中会有这么一句: Warning: Attempt to present UIAlertController: 0x10684d200> on...这句话我们说的直白点的意思就是你要present UIAlertController的ViewController还不在当中 解决这个问题在stackoverflow有这样的答案
领取专属 10元无门槛券
手把手带您无忧上云