Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7f9c28c9d740>) 出现此类错误的时候很是头疼,因为这是 iOS9.0之类才会出现的错误,具体表现就是当 UISearchBar 出现的时候控制台就会输入此类的信息: 其实也很好解决,可以…
这是自定义View的第一篇文章,通过制作简单的自定义View来了解自定义View的流程. 自定义View是Android学习和开发中必不可少的一部分.通过自定义View我们可以制作丰富绚丽的控件,自定义View主要有三种方式,具体如下: 继承已有的View,来扩展我们的View 组合多个View来实现一个复合的View 完全重写View,来实现制作全新的控件 这里,我们讲第三种方法来了解自定义View的流程. 自定义View主要依赖的方法 自定义VIew中,我们主要重写onMeasure,onD…
首先,我们在Model层中添加一个Person类. namespace MVCTest.Models{    public class Person    {        public string IdCard { get; set; }        public string Name { get; set; }        public string Sex { get; set; }        public int Age { get; set; }    }} 在Contro…
Android4.0设计规定的有效可触摸的UI元素标准是48dp,转化为一个物理尺寸约为9毫米.7~10毫米,这是一个用户手指能准确并且舒适触摸的区域. 如下图所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际可操作焦点区域最好都应达到48dp的大小. 为使小的UI区域获得良好的触摸交互,根据View的特性,目前碰到了两种情况: 1.如ImageView,设置其padding值,可触摸区域将向外扩展: 2.如Button,设置其padding值,可触摸区域不变…
Android事件传递流程在网上可以找到很多资料,FrameWork层输入事件和消费事件,可以参考: Touch事件派发过程详解 这篇blog阐述了底层是如何处理屏幕输,并往上传递的.Touch事件传递到Activity的DecorView时,往下走就是ViewGroup和子View之间的事件传递,可以参考郭神的这两篇博客 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) Android事件分发机制完全解析,带你从源码的角度彻底理解(下) 郭神的两篇博客清楚明白地说明了View…
在Android里,获取View宽高的时机是个老生常谈的话题了.众所周知,在Oncreate里直接调用View.getWidth或者View.getMeasuredWidth返回都是0.所以获取宽高时机很重要,对于这个问题的解决方法概括起来有四种之多,具体可以看看任玉刚老师的<Android开发艺术探索>中的View章节或者网上也有非常丰富的资料. 而本文主要讨论的是其中的一个解决方法. View.post()获取View宽高 这个方法相信大家都很熟悉了,就是这样: @Override pro…
Android-自定义View前传-View的三大流程-Layout 参考 <Android开发艺术探索> https://github.com/hongyangAndroid/FlowLayout 写在前头 在之前的文章中 , 我们学习了Android View的 Measure的流程, 本篇文章来学习一下View的 Layout 的过程. 学完了这一篇文章后,我们可以尝试自己去自定义一个自己的Layout. Overview 我对于Layout过程的理解:Layout的过程就是给Child…
Android自定义View前传-View的三大流程-Measure 参考 <Android开发艺术探索> https://developer.android.google.cn/reference/android/view/View.MeasureSpec 写在前面 View的 measure .layout draw 的三大流程的重要性不用多说,只有学习这三大流程,清楚了View的工作方式,才能够在进行 自定义View 的时候更得心应手.在学习三大流程的时候,需要看很多的相关的源码,其中有…
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [btn setFrame:CGRectMake(, , , )]; [btn setTitle:@"Show ViewController2" forState:UI…
最近的项目中给ListView 加入了一个Header View之后,发现Header View的下方也有了分割线,很难看,UI要求将Header View的分割器去掉,好吧.现在就来说一说如何如何去除ListView中Header View中的分割线. Header View中带分割线 Header View中不带分割线 Header View中要去掉的分割线 方法1 ListView的部分布局代码如下所示 <ListView android:id="@+id/ll_channel_li…