id object = [self nextResponder]; while (![object isKindOfClass:[UIViewController class]] &&object != nil) { object = [object nextResponder]; } UIViewController *uc=(UIViewController*)object;…
一.NSClassFromString是NSObjCRuntime.h的方法 FOUNDATION_EXPORT Class __nullable NSClassFromString(NSString *aClassName); Description:Obtains a class by name.The name of a class.Parameters:aClassName The name of a classReturns:The class object named by aCla…
UIViewController * findBestVC(UIViewController *vc) { if (vc.presentedViewController) { return findBestVC(vc.presentedViewController); } else if ([vc isKindOfClass:[UISplitViewController class]]) { UISplitViewController *sp = (UISplitViewController *…
一.引入UI 在实际开发中,基本的流程大致如下图所示: UI(User Interface)作为最基本的要点,也是非常重要的一部分,UI界面的美观直接决定着着用户的体验,苹果官方给开发中提供了非常强大的搭建UI界面的框架UIKit,包含了丰富多彩的各种UI元素.那么如何搭建界面呢?在搭建界面之前先了解UIView. 二.UIView 1.什么是UIView? UIView称之为控件或视图 界面中我们看到的东西都是一些对象组成的,界面中所有能看到的都是UIView 2.常见的UIView控件有哪些…
在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要.在iOS学习——iOS 整体框架及类继承框架图中列出了iOS中所有类的继承框架图,其中下面这张图就是iOS开发中的界面相关类的继承框架图. 下面主要通过学习UIView.h文件来了解UIView主要提供了那些方法和属性,从UIView.h的源码来看,UIView.h的结构主要分为4个部分: 常用枚举类型的…
一.UIView常见属性  (1)@property(nonatomic,readonly)UIView *superview; //获取自己的父控件对象  (2)@property(nonatomic,readonly,copy)UIView *subviews;//获取自己的所有子控件对象  (3)@property(nonatomic)NSInteger tag;//控件的ID标识,父控件可以通过tag来找到对应的子控件,默认为0   (4)@property(nonatomic) CGR…
1.ios当中常⽤的事件?  触摸事件 ,加速计事件 ,远程控制事件 2.什么是响应者对象? 继承了UIResponds的对象我们称它为响应者对象 UIApplication.UIViewController.UIView都继承⾃自UIResponder 因此它们都是响应者对象,都能够接收并处理事件 3.为什么说继承了UIResponder就能够处理事件? 因为UIResponder内部提供了以下⽅方法来处理事件 ⽐比如 触摸事件会调⽤用以下⽅方法: - (void)touchesBegan:(…
UIView与UIWindow * 一般应用程序只有一个UIWindow对象.所有的控件都是在UIWindow上展现的.每个UIView对象都有一个window属性,表示当前view显示在哪个窗体上. Uiview需要一个窗口UIWindow来展示页面,而UIWindow类似于一个Uiview. 1.调用[parentView addSubview:childview]来添加基于该视图或者该窗口的子视图,新创建的视图顺序显示在最前面.2.调用[parentView subviews]来查询基于该…
1.UICoordinateSpace不同坐标空间的坐标切换 @protocol UICoordinateSpace <NSObject> //将当前的坐标空间点转换到指定的坐标空间 - (CGPoint)convertPoint:(CGPoint)point toCoordinateSpace:(id <UICoordinateSpace>)coordinateSpace NS_AVAILABLE_IOS(8_0); //将指定的坐标空间点转换到当前的坐标空间 - (CGPoin…
原由:点击cell上的按钮,无法获取button对应的cell位置 //获取按钮上层控件,也就是cell本身 AccountCell *cell= (AccountCell *)[按钮名称 superview]; //获取该cell本身的位置 NSIndexPath *indexPath=[self.collectionView indexPathForCell:cell];…
前言 之前曾介绍过Python的os库详细使用方式,具体可看看这篇博文:https://www.cnblogs.com/poloyy/p/12341231.html 博主在学完os库之后,就开始投入使用了,在项目中我们一般需要让 路径可配置 ,什么意思?假设你现在有个项目A,里面有些变量存储了文件路径,如: project_path = C:\Users\user\Desktop\py\moocInterface :想象下,当你换了个电脑,你的项目不在放在C盘下的时候,你这个变量是不是就失效了,…
一:首先查看一下关于UIGestureRecognizer的定义 //当前手势状态 typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { //尚未识别是何种手势操作(但可能已经触发了触摸事件),默认状态 UIGestureRecognizerStatePossible, //手势已经开始,此时已经被识别,但是这个过程中可能发生变化,手势操作尚未完成 UIGestureRecognizerStateBegan, //手势状态发生改变 UIGe…
一:首先查看一下关于UIGestureRecognizer的定义 //当前手势状态 typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { //尚未识别是何种手势操作(但可能已经触发了触摸事件),默认状态 UIGestureRecognizerStatePossible, //手势已经开始,此时已经被识别,但是这个过程中可能发生变化,手势操作尚未完成 UIGestureRecognizerStateBegan, //手势状态发生改变 UIGe…
typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { UIGestureRecognizerStatePossible, // 尚未识别是何种手势操作(但可能已经触发了触摸事件),默认状态 UIGestureRecognizerStateBegan, // 手势已经开始 此时已经被识别 但是这个过程中可能发生变化 手势操作尚未完成 UIGestureRecognizerStateChanged, // 手势状态发生改变 UIGestureR…
一.XCode4.2以后支持自动释放内存ARC xcode自4.2以后就支持自动释放内存了,但有时我们还是想手动管理内存,这如何处理呢. 很简单,想要取消自动释放,只要在  Build Settings里,找到Apple LLVM compiler 3.0 - Code Generation 下面的  Objective-C Automatic Reference Counting ,把它的值改成NO即可.如下图.     二.Objcet-C 关于xCode内存管理中内存分配和释放的一些经验…
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] delegate] window]; CGRect rect=[_myButton convertRect:_myButton.bounds toView:window]; 2.UIImageView 和UILabel 等一些控件,需要加这句才能setCorn _myLabel.layer.mas…
转载自:http://www.infoq.com/cn/articles/rethinking-mvc-mvvm 原文作者:唐巧 被误解的 MVC MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的客户端软件开发框架. MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发…
iOS开发过程中,总有那么一些个小问题让人纠结,它们不会让程序崩溃,但是会让人崩溃.除此之外,还将分享一些细节现在我通过自己的总结以及从其他地方的引用,来总结一下一些常见小问题. 本篇长期更新,多积累,多奉献,同时感谢其中一些文章的作者的整理,感谢! iOS高级开发实战讲解 这是我在网上搜索到的iOS高级开发实战讲解,由于原文不是很方便浏览,所以我在这里整理一部分出来,方便查阅,同时谢谢原作者. 这里我不是每一个都收录进来,这里只是放出一部分,有些用的太多,我就没整理了,大家如果想看可以去看原文…
strong,weak, retain, assign的区别 strong与weak是由ARC新引入的对象变量属性 xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的.xcode 4.3(ios5和以上版本)之后就有了ARC,并且开始使用 strong与weak assign: 用于非指针变量.用于 基础数据类型 (例如NSInteger)和C数据类型(int, float, double, char, 等),另外还有id 如:…
UI 即 UserInterface(用户界面 1.iOS系统版本,每年都有更新.对我们开发者而言,主要的是观察API的变化. 2.iPhone新手机发布,会产生不同尺寸的屏幕,现在市面上有4种尺寸,我们需要考虑屏幕适配问题.3.iOS系统层级,分为4层.目前我们学习的就是最顶层Cocoa touch层(layer),我们使用的是UIKit框架4.iOS SDK(软件开发工具包).iOS开发语言OC,Swift——都是面向对象. 5.我们最简单的创建UI项目的方法就是通过storyboard(故…
-(void)windowAddPushVc:(UIView *)pushView WithTitle:(NSString *)title { UIWindow *window = [UIApplication sharedApplication].keyWindow; UINavigationBar *navigationBar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 64)]; UILabe…
一:首先查看一下关于UIEvent的定义 //事件类型 typedef NS_ENUM(NSInteger, UIEventType) { UIEventTypeTouches, UIEventTypeMotion, UIEventTypeRemoteControl, }; // 触摸事件的类型 typedef NS_ENUM(NSInteger, UIEventSubtype) { UIEventSubtypeNone = , //摇晃  UIEventSubtypeMotionShake =…
抖动效果在开发中比较少用到,不过有时使用了确有个很好的装逼效果,用的时候就例如一些用户错误操作之类的 效果如下,不过gif看到的效果没实际的好看 上代码 - (void)shakeAnimationForView:(UIView *) view { // 获取到当前的View CALayer *viewLayer = view.layer; // 获取当前View的位置 CGPoint position = viewLayer.position; // 移动的两个终点位置 CGPoint x =…
转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好我们需要的依赖库,python hook和pythoncom. 说起Keylogger,大家的思维可能早已飞向带有wifi功能的mini小硬件去了.抛开高科技,我们暂且回归本质,探探简易键盘记录器的原理与实现. Python keylogger键盘记录的功能的实现主要利用了pythoncom及pyt…
一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePicker的案例 * UIToolbar的介绍和基本使用 * UIBarButtonItem的介绍和演示 * 将日期或时间数据设置到文本框上 2.项目配置文件介绍 * 应用头像 * 应用加载图片的设置 * info.plist文件介绍: * 常用的key * Xcode 6以前都是以“项目名称-info…
Android 中国SDK: http://wear.techbrood.com/ Android SDK Manager 代理设置: http://www.cnblogs.com/sunzn/p/4242131.html 使用Intellij Idea 开发Android: http://www.tuicool.com/articles/a2MNna 得到当前Activity的RelativeLayout RelativeLayout root = (RelativeLayout)View.i…
一.引言 随着autolayout的推广开来,更多的app开始使用自动布局的方式来构建自己的UI系统,autolayout配合storyBoard和一些第三方的框架,对于创建约束来说,已经十分方便,但是对于一些动态的线性布局的视图,我们需要手动添加的约束不仅非常多,而且如果我们需要插入或者移除其中的一些UI元素的时候,我们又要做大量的修改约束的工作,UIStackView正好可以解决这样的问题. 二.在storyBoard上初识StackView UIStackView是一个管理一组堆叠视图的控…
runtime 完整总结 好东西,应该拿出来与大家分享... 南峰子博客地址:http://southpeak.github.io/blog/categories/ios/ 原文链接:http://www.jianshu.com/p/6b905584f536 类和对象 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等.这种特性意味着…
点击return取消textView 的响应者 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [_contactTextFiled resignFirstResponder]; return YES; } - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{…
前言   在上一阶段的开发过程中,我们大量使用了 KVO 机制,来确保页面信息的及时同步.也因此碰到了很多问题,促使我们去进一步学习 KVO 的相关机制,再到寻找更好的解决方案.鉴于 KVO 让人欲仙欲死的使用经历,在这里做一个简单分享.此分享的目的,更多的是在于点出 KVO 相关的技术点,供我们大家在学习和使用过程中做一个参考. 对于 KVO 的背后机制感兴趣的同学,可以直接看第三部分,KVC 和 isa-swizzling . 对于 替代方案感兴趣的同学,请直接跳到末尾的第五部分,有列出了目…