首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 面向协议方式封装空白页功能

    而Swift除了可以面向对象编程,它还可以面向协议编程。那可不可以也用协议来解决情况呢?...嘿嘿,这个可以有,那我们接下来就来试试怎么通过协议的方式来避免上述情况,并且实现一行代码添加空白页功能 前言 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程...(一) iOS - Swift 面向协议编程(二) 之前的文章中提到了,协议除了起规范作用,还有别一个用处,就是赋予能力。...大功告成 三、开源库 我对这个过程进行一次整理,并做成一个名为 LXFProtocolTool 的库并上传至gitHub。...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也将 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。

    1.5K50

    委托与回调函数

    = UIScrollView() scrollView.delegate = self } func scrollViewDidScroll(scrollView: UIScrollView...虽然Swift的委托实现跟协议息息相关,但我在这里不准备过多讨论协议的细节内容,只要知道它类似于其他语言的interface(接口)就可以了,只是Swift中的protocol不仅可以被class遵守,...这样在这个scrollView滑动的时候就会执行scrollViewDidScroll里面的代码了。...讲到这里我想大部分人还是不明白委托到底是怎么回事,因为我在这里只是使用了委托,具体的委托实现是UIKit框架写好的,这样对于理解委托来说无异于隔靴搔痒,所以下面我来实现一个完整的委托。...Swift对函数式编程的支持非常到位,所以可以轻松编写回调函数。

    1.7K30

    新闻类App顶部菜单栏封装

    VC的控制使用PageViewController,好处是滑动的时候可以懒加载,只有用户浏览的时候才会实例化并缓存起来。...网上的其他方案都是一次性把所有VC都实例化,然后使用CollectionView管理,这是不好的,因为有些VC用户可能从来不浏览,没必要实例化。 接下来就详细介绍一下。...实现难点 菜单栏需要把所选的一栏居中显示 使用ScrollView,需要手动计算,设置offset,让其被选栏居中,比较麻烦。...在collectionView中,滑动cell的时候其实只是offset在变,cell的frame其实是不变的,collectionView其实也是个ScrollView,cell是加在scrollView..."title\(i)", cid: "\(i)") arr.append(item) } return arr } 源码 demo基于swift4.0

    1.1K20

    实现 iOS 无感知上拉加载更多

    scrollViewDidScroll这个回调里面虽然可以回参 scrollView,但是对于我们需要的信息还不够具体。...网上的思路(一) 就在我思考的同时,我也在网络上需求实现这个功能的答案,让后看到这样一个思路: 实现方法很简单,需要用到 tableView 的一个代理方法,就可轻松实现。...row == distance { loadMore() } } } 本代码可以在开源项目中的 SwiftCoinRankListController.swift...Gif可能看起来还好,我说我调试的感受: 虽然做到了上拉无感知,但是当手滑的速度比较快的时候,到底了新的数据没有回来,就会在底部等一段时间。...使用 MJRefreshAutoFooter,这个简单,我直接把基类的 footer 给替换掉就可以了,本代码可以在开源项目中的 BaseTableViewController.swift 文件查看:

    2.3K40

    iOS 多个scrollview联动(附DEMO)

    前言 在移动应用实际开发过程中,往往会有多个scrollview嵌套的界面需求,这种需求已经司空见惯,解决方案也多种多样,这里就介绍一下我认为最优的解决方案。 效果图: ?...尝试过的思路: 有一种思路总结起来是,通过开启或者禁止mainScrollview和moduleScrollview的交互来达到何时响应某个scrollview的目的。...在手指拖动的临界状态,通过大量的判断逻辑来主动控制某些scrollview的偏移量,进而达到“欺骗观众”的响应拖动状态。...缺点:逻辑复杂程度过大,容错处理很多,致命的缺陷是临界状态无法实现scrollview的减速效果(惯性效果),当然有的开发者会说利用核心动画能实现这一效果,但是,我认为这就太费周折了。...如此一来,我们需要做的,仅仅是判断何时不让某个scrollview改变偏移量即可。

    2.3K70

    RxCocoa 源码解析——代理转发

    我们进入 RxCocoa 的 UITableView+Rx.swift 文件来一探究竟,这个文件中不仅有itemSelected,还有诸如itemDeselected、itemAccessoryButtonTapped...这块如果大家不清楚的话可以看一下 Reactive.swift 文件,由于不是本文的重点就不细说了,可以理解为extension Reactive where Base: UITableView中的方法其实就是给...DelegateProxy 几个关键的地方我都加了中文注释,大家应该能明白。...值得注意的是,这个方法里出现的self.delegate属性并不在本文件中,那我们推测应该是在别的 Reactive extension 中,跳到 UIScrollView+Rx.swift 看一下,果不其然...显然这个方法的调用时机是个关键,这里就用到了 Runtime 的消息转发(Runtime 相关的东西网上有很多资料,也不是本文的重点,我就不细说了),我在注释里也写了,DelegateProxy的父类_

    1K20

    教你写个图片轮播

    图片轮播.gif 这是一个图片轮播的 Demo,上半部分用 CollectionView 实现,没有无限循环效果,下半部分是用 ScrollView 实现的,自动无限轮播。代码地址在这里。...但是这样做不到手势滑动的“首尾连接”,就是无论往左还是往右都可以无限滑动,要达到这样的效果,还是得用到 ScrollView 的接口,所以我觉得还不如直接用 ScrollView 写好了。...用 ScrollView 实现“首尾连接”有一种常见的思路: frame_content.png 白色边框代表 ScrollView 的 frame,蓝色部分是 content。...譬如当前显示的是第一张图片(img1),按理说再用手往右滑动的话啥都没有了,但现在我在img1的左边又加了一张img3,这样在向右滑动的时候我们还能看到 img3,然后在滑动即将停下的时候,快速切换到第四个位置的...proc = unsafeBitCast(timer.userInfo, Proc.self) proc() } } 因为userInfo的类型是个 AnyObject,而 Swift

    3K50

    dispatchTouchEvent事件分发浅析(八)简单解决ScrollView 与 WebView 的冲突

    ---- 简单解决ScrollView 与 WebView 的冲突 上一篇,简单叙述了一下对应的想法 这篇也只是选读,没有太多实在意义,只是叙述一下对应的解决过程 这里简单录制gif,好理解一点 -...我们可以发现,对应的MyWebView,只是做了显示作用 里面是不能进行滑动的 无论怎么操作,都只是外面的ScrollView拿到和消费了事件 ---- 1....通过计算,来判断是否到最低端了 最底端设置false,不让WebView处理 否则,和上面一样,由WebView处理 我们可以看见对应的效果 ? ---- 3....让WebView处理,但是最底端,最顶端由ScrollView处理 我们看见上面这里,解决了在WebView中,拉到底部以后 可以继续下拉的情况 但是,当拉到底部以后,发现当我们上拉的时候,还是ScrollView...在处理 我们其实想达到的目标是: 到底部以后,如果是下拉,则ScrollView处理 到底部以后,如果是上拉,则WebView处理 同时,我也要考虑到,到达顶部以后: 到顶部以后, 如果是下拉, 则WebView

    96120

    macOS 开发基础教程视频 - 理解bounds本质

    父控件,我需要在你的坐标系统中的占据这个frame.origin位置,尺寸是frame.size的区域),这样以来,父控件在布局的时候,就会知道如何摆放它内部的所有控件了。...这样bounds就成为了我们对NSView的观景窗~ 如果现在你已经理解了bounds,那么对于ScrollView的是如何实现滑动展示其内部视图内容,就不会觉得奇怪了。...添加自定义类CustomScrollView.swift文件(继承自NSView)来管理customView控件 在Storyboard中设置customView的类属性为:CustomScrollView...设置customView 实现CustomScrollView.swift的代码: import Cocoa class CustomScrollView: NSView { override...,希望通过本文对视频课程的补充,对你理解bounds属性有所助益,并同时希望对ScrollView的实现机制,你也能有比从前更多一点的掌握了。

    1.1K40

    老人新兵 —— 一款 iOS APP 的开发手记

    OC 一方面是学习成本要高于 Swift,另外在 5.0 后,Swift 也已经逐步稳定下来,出于多快好省的想法,使用 Swift 是当前在 iOS 下进行开发的不错选择。...究其原因,大多 Swift 代码中使用了泛型、函数式编程等特性,这些知识在基础书籍里都是一笔带过的,从而导致代码看得一头雾水。没关系,回炉重造。这里我要特别感谢 ObjCCN 翻译并撰写的书籍。...通过这些书籍,我对 Swift 语言有了更多的认识和了解。当然其中很多的资料并不太容易理解,不过咬牙读下来还是会有极大的收获。在对 Swift 基本语法有所掌握的情况下,我开始学习 SwiftUI。...ScrollViewSwiftUI 中的 ScrollView 沿袭了其他 SwiftUI 控件的特点,使用起来非常轻巧,但几乎不提供额外的控制选项。...目前这个 bug 还没有解决,为了不让用户的体验出现问题( 只是偶尔出现,但也很烦人 ),我暂时屏蔽了 app 中的从屏幕左侧滑动返回的功能。

    2.5K40

    react native 无侵入 彻底解决键盘遮挡问题

    中对于键盘的遮挡问题一直是个难题 而即便对于一些出名的第三方库,在对于自定义inputView和RN中都有异常情况 RN中键盘遮挡问题也是个热门,google一下就会发现都在查找解决方法 例如: 放在 scrollView...如何自动顶上去,还要考虑偏移量问题 RN中监控键盘的位置变化 自定义一个 scrollView,所有需要防遮挡的,都必须使用这个自定义 scrollView 自定义一个 InputText,所有需要防遮挡的...因为它真的不稳定 ---- 其实在我看来也是个很简单的问题,因为大部分人都进入误区中,无法看透本质 防键盘为什么必须在RN中解决呢 自定义防遮挡的 InputText scrollView 写起来很麻烦...引入原生库 引入原生库,在原生控制,才能做到 稳定(原生对键盘和 UITextField 的监控和控制不是比RN更稳定吗) RN无丝毫代码侵入、项目侵入 可以单独控制每一个输入框 请参考我的另外一篇文章...8829859A835B595CF14A6ED91139B88E.jpg 当然不用我说也知道 在两个 OC 文件中 #import Swift.h

    3.6K20

    肘子的 Swift 周报 #036 | WWDC 2024 观后感

    我将对几个感触较深的方面分享一下看法和感受,回顾这次 WWDC 的亮点。...SwiftUI 初次接触 SwiftUI 今年的新特性时,我并未感到特别兴奋。然而,做了更多的研究后,我意识到此次更新在 SwiftUI 的发展史上将具有十分重要的意义。...最后 我对 WWDC 2024 的满意程度无疑非常高,这种满意是随着我对新功能和新特性的逐步了解与深入体验而逐渐增强的。这种情况在最近几届 WWDC 中相对罕见。...WWDC 2024 新功能有关的文章 SwiftData SwiftData in WWDC 2024:革命仍在继续、稳定还需时日[3] by Fatbobman( 东坡肘子 )[4] SwiftUI ScrollView...in WWDC 2024:革命仍在继续、稳定还需时日: https://t.ly/c0Cpe [4] Fatbobman( 东坡肘子 ): https://x.com/fatbobman [5] ScrollView

    13410
    领券