• 九三
    2019-05-17
    老师 预计什么时候全部就更新完了

    作者回复: 最早六月末 最晚七月中旬吧

    
     1
  • miss
    2019-12-22
    老师,我想问问,iOS中的控件是啥?是不是我们常见的组件呐?

    作者回复: 说下我简单的理解哈,视图组件我个人认为就是一些UI视图组成的,可以复用的常用视图单元。我们把这些视图封装成组件的原因,就是为了划分功能边界,方便复用,提升开发效率。当然组件也可以脱离视图,比如iOS中说的组件化,都是业务逻辑维度的,但是也都是为了合理的区分功能进行解耦,方便复用,背后也是为了提升开发效率。所以组件更加想表达的是解耦和边界。而控件我感觉更想表达的是可以进行交互的视图组件,比如按钮、输入框、复选框等等。当然这些‘术语’并不是标准和规范的,我们也大可不必过分的纠结其意义和使用场景,比如你想实现一个类似的输入框的小功能,然后说封装成了组件,或者封装成了控件,应该都是可以接受的。

    
    
  • VHJM
    2019-12-07
    TapGesture 的 target 设置的是 self, 这个 self 指代的不是黄色的 view 吗?
    TapGesture 的 delegate 设置的也是 self,这个 self 指代的是整个 UIViewController 吗?
    怎么两个 self 指代的不一样啊?还是我理解错了

    作者回复: target中的self,以及delegate的self 都是指当前这个类,也就是UIViewController。UITapGestureRecognizer简单的理解,就是一个手势,当这个手势被系统检测到的时候,调用Target的action。所以你可以看到代码后面的@selector其实是在当前这个类中的,简单的说就是调用self的某一个selector,当然target可以是任何Object,只要能响应后面的selector就好。至于黄色的View,我们是将UITapGestureRecognizer加到它上面,所以它调用addGestureRecognizer方法,来增加手势。

    
    
  • 熊届大一统🐻
    2019-08-18
    为什么我点击黄色的UIView 这个view会向上挪动

    作者回复: 整体的原因就是因为UIScrollViewContentInsetAdjustmentBehavior这个属性,在项目中我们为了简单演示UIScrollView的滚动属性,没有引入其他的复杂概念,所以没有设置。

    具体的原因:默认系统会在addsubview之后,就是scrollView展示之前自动的调整Inset,导致了offset的变化,所以初始化的时候,其实整体的页面是下移的。设置了pagingEnabled,系统会自动的处理offset来实现分页的效果.所以对于垂直方向,所以这种自动处理在滑动时会导致之前变化的offset回滚到0。所以就有了上移,而不设置pagingEnabled时系统不会自动调整offset,完全由用户操作,所以就不会出现这种现象。

    解决的办法:设置scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever。在开发过程中的frame布局的项目中,所有的scrollView也都建议设置这个属性。

    
    
  • Realtime
    2019-07-17
    老师,您讲的很清楚, 我有一个更深入点儿的问题。那就是既然是selector,那么系统应该是在runtime的时候来响应手势的方法吧。 系统是如何监听到点击方法的呢?

    作者回复: 整个点击的响应,是根据响应链传递的。在runloop中系统会默认接收事件,然后通过响应链传递给子View,选择合适的View来处理这个事件。而selector以及你说的runtime,则是View在接收到这个事件之后到处理,执行了这个selector的调用。我们传递的selector只是响应之后的业务逻辑,是不会影响响应手势的。

    
    
我们在线,来聊聊吧