首页
学习
活动
专区
圈层
工具
发布

新闻类App顶部菜单栏封装

概述 最近有一个需求,类似今日头条顶部的菜单栏。唯一区别是需要带可移动的下划线。网上查找资料,发现解决方案大部分是用UIScrollView实现。下方VC控制用UICollectionView。...使用ScrollView的话就比较方便了,计算滑动距离和屏幕宽的比例,让下划线跟着滑即可。...在collectionView中,滑动cell的时候其实只是offset在变,cell的frame其实是不变的,collectionView其实也是个ScrollView,cell是加在scrollView...解决方案是,将cell的坐标转化到collectionView上,然后让下划线的中心点和cell在collectionView上中心点保持一致 if let currentCell = collectionView.cellForItem...初始化方法修改后记得在ScrollPageView中修改自定义VC的初始化。

1.3K20

iOS 面试策略之系统框架-UIScrollView及其子类

UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。...如何定制不同 Cell 的 UI、如何与用户交互、如何与服务器端数据同步、如何在滑动时最大限度保证界面的流畅,这些都是考察的要点,是一个 iOS 工程师必备的基本技能。...比如具体 item 的尺寸大小, item 之间的间距,header 和 footer 的大小和间距,以及 UICollectionView 的滚动方向。...一般为了用户体验,我们会引入 navigationController,然后在导航栏的右上角添加 edit 按钮来让用户在普通和编辑模式中切换。 6....例如用惰性加载只处理用户想看到的内容,或是用 ASDK 进行智能预加载。这样可以进一步提高用户体验,并使整个滑动的性能效率最大化。 10.如何用 UICollectionView 实现瀑布流界面?

3.7K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    仿淘宝类电商秒杀分页控件(附源码)

    菜单遮罩的颜色、大小和箭头的大小也可以设置参数来控制; 菜单实现了防止用户连续点击功能; 支持pod导入. 3....组件导入 组件支持直接将组件文件夹拖入工程和使用Pods管理两种方式导入: ▐ 3.1 直接将组件文件夹拖入工程方式 把 GFPageControler 文件夹拖到工程中,选择 copy ?...原理: 原理其实很简单:就是弄两个视图,内容和位置一样,只是他们的文字颜色不一样而已!...} 3、需要一个遮罩,一个UICollectionView在遮罩下面,一个在遮罩上面; [self addSubview:self.collectionViewBottom]; [self addSubview...:self.maskView]; [self.maskView addSubview:self.collectionViewTop]; 4、在遮罩上面的UICollectionView超出遮罩的部分的内容不显示出来

    1.7K20

    RxSwift - Why

    " + $1 } .map { "Greetings, \\($0)" } .bindTo(greetingLabel.rx_text) 在 UITableView 和 UICollectionView...状态 允许变化的语言可以更容易地访问全局状态并且改变它。...但是在另一方面,当使用一种巧妙的方式,命令式语言可以编写出更高效的代码,从而更接近硬件。 通常对抗组合崩溃的方法是尽可能简单的保持状态,并且使用单向数据流来获取模型数据。 这就是 Rx 的亮点所在。...Rx 是在函数和必要世界之间的平衡点。它可以让你使用不可变的定义和虚函数,在一个可靠的组合方式里来处理可变状态的快照。 那么什么是一些简单的例子呢?...有一个所有 Rx 操作符 巨大的列表,并且列出了包含所有 支持当前 RxSwift 的操作符。 每个操作符,都对应一个 宝石图 解释了它的用法。 但是如果你需要一些操作符没有在列表上怎么办?

    90220

    直播卖货小程序源码中,商品分类页面是如何实现的

    在直播卖货小程序源码中,一般都包含商品分类页面,如下图,那么这个页面是如何通过代码实现的呢?下面,小编以iOS版本的开发过程为例,来讲述下实现过程。...图片1.png 左边一级分类使用tableview来展示,右边的耳机分类使用collectionview来展示,主要就是实现一二级分类的联动。下面主要讲下点击和滑动。...sectionheader的高度         _classCollectionView.contentOffset = CGPointMake(0, _classCollectionView.contentOffset.y...* NSEC_PER_SEC)), dispatch_get_main_queue(), ^{             isClickLeft = NO;         });     } } 2、在collectionview...的代理方法中更改一级分类的选中 ///collectionview将要加载头尾视图调用的方法 - (void)collectionView:(UICollectionView *)collectionView

    1.5K20

    iOS自定义的emoji表情键盘 原

    emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编码SBUnicode,在OS系统中,这两种编码都有很好的支持。...编码后再进行传输,因此,有两中方式,一种是通过自定义一套表情切图,将其与unicode码一一对应,在转码的时候,我们一一遍历,转换成unicode后进行传输,这样的好处是我们可以保证所有平台所能使用的表情统一...在iOS端,可以有另一种方式,通过上面我们知道,通过SBUnicode码我们可以在客户端显示表情符号,并且这个码的排列是十分有规律的,通过这个特点,我们可以通过遍历SBUnicode码的范围进行表情的创建...我们可以通过遍历的方法,将其都加入数据源数组中: int emojiRangeArray[10] = {0xE001,0xE05A,0xE101,0xE15A,0xE201,0xE253,0xE401,0xE44C...0:1);     pageControlBottom.currentPage = page; } 三、切换系统键盘和自定义的表情键盘         UITextField和UITextView都会有下面这个属性和方法

    3.5K10

    Swift 自定义布局实现 Cover Flow 效果

    写在开头 大家早上好,今天我又给大家带来了一篇关于 UICollectionView 系列的文章,在上一篇文章中,我们实现了一个酷炫的瀑布流布局,带大家初步的了解了在 UICollectionView...的滚动是分页滚动,而且每次停止的位置都是与UICollectionView 的中心点重合 需求已经明确了,那我们该如何去实现呢!...同学你讲的没错,但是当我们 Cell 的 width 加上边距等如果不占满 UICollectionView,那么就会出现一个问题,虽然你实现了分页效果,但是你的 Cell 在滚动的过程中是不会居中的....那该如何不通过设置 isPagingEnabled 来实现 Cell 分页滚动和居中显示呢!请接着往下看....contentOffset.x + collectionView!.

    2.4K20

    实践-小效果 Ⅰ

    ,如果不设置 个人更推荐第二个 6.使用 UICollectionView  来展示图片多选: 图片多选择中使用 UICollectionView  来展示图片...,好处:展示简单,删除更简单。...设置 > 通用 > 辅助功能 > 语音,开启“朗读所选项”,并在“嗓音”中选择“中文”      在真机测试的时候,碰巧那台手机的加减音量按键失效了,于是在手机设置里把音量调到最大...,可是在测试的时候还是音量很小,最后换了一台手机,在测试的时候使用+-键加大了音量,声音果然大了起来,才发现手机设置-> 声音->  设置的声音大小是来电铃声的音量大小,并不是扬声器的音量。...debug包就是我们要给设计师的app包了。 如何能让设计师傻瓜式的安装这个app呢?这里介绍一个命令行工具,ios-sim命令行工具。

    1.5K30

    iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)

    当然下方的效果是一些资讯类App中选择分类时,常用的部分。主要还是对UICollectionView的使用。当然,下方效果的实现,网上也不乏相应的实例。...在之前的博客中,我们系列的介绍了UICollectionView的各种回调,以及如何自定义CollectionView的布局,并给出了如何使用CollectionView自定义瀑布流。...上面这个效果就是我们今天博客中所实现的效果,而下方这两个效果是我们之前在聊UICollectionView以及自定义布局时所给出的相应的Demo, 下方的Demo所对应的源码也在Gitbub上进行了分享...二、控件的调用 我们将上述分类选择的控件进行了封装,接下来,我们将会给出其初始化和调用的方式。...数据源创建好后,在实例化CESelectThemeController对象时,将相应的数据源传给我们的控件即可。

    2K50

    阅读器多种翻页的设计与实现

    前言 前文介绍的是小说阅读器的设计和实现,本文作为补充对多种翻页模式做详细剖析。 正文 常见的阅读器翻页模式包括:平移、仿真、滑页和上下: 平移:左右滑动; ?...通常iOS实现滑动会有两大选择:UIScrollView和UITableView;(UICollectionView和UITableView类似) UIScrollView存在一个较大的局限:上面的视图资源无法回收利用...会造成contentSize和contentOffset的改变,导致界面可能会出现闪烁,需要各类逻辑的特殊处理。...遇到的问题(Q&A): Q:如何实现UIScrollView改变offset,但是继承原来的速度?...A: 这是因为pan手势在切后台时会自动cancel,所以需要在手势处理增加对cancel状态的处理; Q:如果初始化的时候,传进的VC.view不满一屏,该如何处理?

    4.2K10

    iOS 列表界面如何优雅实现模块化与动态化

    业务痛点 iOS 界面开发中 UITableView / UICollectionView 的出场率极高,它们都是使用代理方法配置数据源,虽然这样的设计理念符合了单一职责原则,但在列表变得复杂时代理方法的处理将变得力不从心...图1 代码简单轻量 YBHandyList 保留最小功能,代码量很少,核心思路就一句话:将 UITableView / UICollectionView 的数据源从代理方法配置转化为数组配置。...直观的动态化控制 构建界面只需要关注所有id在数据源数组中的顺序,就像搭积木一样拼接起来,数组中的顺序就是对应 Cell 在界面中的显示顺序,由此就能通过改变数据源数组的顺序轻易的实现动态化控制...更安全和优雅的复用 很多时候,我们会将具体业务的处理逻辑放 Cell 中或者其 ViewModel 中,那么它们就很难复用,因为复用是建立在无具体业务侵入的前提下。...这看起来有些繁琐,使用多代理技术能避免额外的创建代理实现类,但这样会导致代码不再简单和透明。

    1.6K20

    iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件

    接下来将会详细的介绍其实现方案。 ? 二.该自定义布局的使用方式 我们先看一下该自定义布局是如何使用的,然后再通过使用方式来逐步介绍它是如何实现的。...这也是一个由浅入深的过程,因为用起来要比做起了更容易。比如开汽车容易,造汽车可就麻烦多了。所以在本篇博客的第二部分,将要介绍如何去使用该自定义组件。...和Delegate, 我们还需实现布局的代理方法,该自定义布局要实现的代理方法如下。...如何实现 上面介绍了如何去使用该自定义组件,接下来就是“造车”的过程了。本篇博客的第三部分介绍如何去实现这个自定义布局。 1. ...预加载布局方法, 该方法会在UICollectionView加载数据时执行一次,在该方法中负责调用一些初始化函数。具体如下所示。

    1.8K80
    领券