| 导语 本文主要是对iOS 11下企鹅 FM APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算方式、什么情况下的tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到的另外一个小问题。 一、iOS 11下APP中tableView内容下移20pt或下移64pt的原因分析 问题如下图所示: 1. 原因分析 原因是iOS 11中Controller的automaticallyAdju
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
frame: 该view在父view坐标系统中的位置和大小。(参照点是:父亲的坐标系统) bounds:该view在本地坐标系统中的位置和大小。(参照点是:本地坐标系统,就相当于View自己的坐标系统,以0,0点为起点) center:该view的中心点在父view坐标系统中的位置和大小。(参照点是:父亲的坐标系统)
UITableView是最常用的一个iOS控件,现要做一个如下图的UITableView,其中白色部分就是cell,可是默认的UITableView中cell之间是没有间隔的,那么办呢?网上有2种做法
项目中需要一个效果:下滚列表时顶部的自定义视图不移动,上移时隐藏顶部视图,提高列表的展现范围。在此基础上海加了一个隐藏列表时的动态渐入渐出效果,如下:
对于继承UITableViewController,如果想更改tableview样式,请重写初始化方法:
UIScrollView是iOS开发中经常用到的UI控件,像图片轮播之类的效果都可以用UIScrollView来实现,当然轮播什么的网上有很多教程了,我就不多说了。今天主要讲三个跟交互有关的效果(稍微有点标题党啊,其实也没有多进阶……),也不是直接用的UIScrollView,而是它的子类UITableView和UIWebView。先看一下效果图吧,都来自我自己的项目:
- (void) textViewDidChange:(UITextView *)textView { if (textView.text.length > 5000) { // 限制5000字内 textView.text = [textView.text substringToIndex:5000]; } iOS7之后出现,通过改变scrolloview的setContentOffset处理位置 CGRect line = [_textView caret
上的,今天我将其pull到github上来了,大家能够自行下载:git clone git@github.com:lihux/twentyThousandTomatoes.git没有安装git或者不会用的童鞋,
1.组件介绍 Page是企鹅FM研发的分页组件,包括支持分页非交互切换(通过方法调用导航切换)和交互切换(屏幕的手势滑动),多个分页Controller和View的管理。 1.1需求背景 为什么弃用UIPageViewController,首先介绍一下UIPageViewController,这是系统为开发者定制的分页组件,提供了两种分页切换的效果,一是滑动 二是翻页。且提供了前后切换的回调。 a) UIPageViewController在iOS8以下的系统运行是有问题的,可以参考stackFlow上的症
Twitter 上看到TaioApp的作者说,iOS 系统有支持长截图的API——UIScreenshotService,从 iOS 13开始就可以使用,下午的时候就在自己的 APP 中体验了一下。
经常在项目中遇到自定义cell的情况,而且要求cell之间有间距,但是系统没有提供改变cell间距的方法,怎么办? 方法1:自定义cell的时候加一个背景View,使其距离contentView的上下一定距离,实际上cell之间没有间距,但是显示效果会有间距。这个方法有个弊端,比如你设置的间距gap = 12;那么第一个cell距离上面距离为gap,而每个cell的间距为2*gap,效果不是很满意。 方法2:创建tableView的时候用grouped,一个cell就是一个section。然后设
先添加需要的代码,这里需要将storyboard的ViewController换成
在有支付相关的APP中,都有对应的钱包,虽然现在的支付宝,微信支付很流行,但是都是需要绑定自己的银行卡,那么这个银行卡的卡包页面该怎么实现呢?在网上找了许久也没有找到合适的,那就索性自己造轮子。
首先看一下BiliBili客户端的视频浏览界面。默认界面Header完全展开,并且Header显示AV号(别乱想,就是视频编号了)以及播放按钮。滑动之后Header被压缩,按钮移到AV号左边。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53334755
1 简介 UIScrollView 是负责滚动的视图。苹果最强大的地方就在于其良好的UI展示,和UE体验。如果不会很好的使用UIScrollView,就等于丧失了苹果一般的法力。 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限。当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容。 普通的 UIView 不具备滚动功能,不能显示过多的内容。 UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 1.1 工作原理
改变contentInset值会有一个不可预料的副作用,尤其是当你显示滚动条的时候。当用户拖拽内容到顶部或者底部,滚动条会越过任何被定义在contentInset的区域之内的范伟,例如navigation controller和toolbar。 想要修正这个问题,你必须设置scrollIndicatorInsets属性。设置vertical inset值限制了垂直滚动条,避免了越区域显示滚动条的问题。 滚动到特定的Offset:滚动到特定的top-left位置可以通过两种方式完成: setConte
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
导语 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用、内存泄漏的 UIWebView。WKWebView 拥有60fps滚动刷新率、和 safari 相同的 JavaScript 引擎等优势。 简单的适配方法本文不再赘述,主要来说说适配 WKWebView 过程中填过的坑以及善待解决的技术难题。 1、WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件
首先需要了解UIGestureRecognizerDelegate协议的这个方法:
情况 最近在做表情键盘时遇到一个问题,我用UICollectionView来布局表情,使用横向分页滚动,但在最后一页出现了如图所示的情况 只显示一半 情况分析图 是的,现在的item分布就是这个鬼样子
git 地址:https://github.com/TieShanWang/KKPopover
在滚动过程当中,其实是在修改原点坐标。当手指触摸后,scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么scroll view 发送 tracking events 到被点击的subview。假如在计时器到点前发生了移动事件,那么 scroll view 取消tracking 自己发生滚动。
意见反馈页面有一行提示文字,包含客服QQ,要求qq可点击。为了实现点击功能,这里的文本没有使用UILabel,而是采用了UITextView,使用textView的链接功能。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53098303
分享一些项目中常用的方法,可以保存起来,作为自己的工具集哦。 1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes { CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error]; if (error) { #
1. 升级后,发现某个拥有tableView的界面错乱,组间距和contentInset错乱,因为iOS11中 UIViewController 的 automaticallyAdjustsScrollViewInsets 属性被废弃了,因此当tableView超出安全区域时,系统自动会调整SafeAreaInsets值,进而影响adjustedContentInset值
第四天任务: 今天主要任务完成精华模块的搭建。 精华页面的搭建 精华页面中全部界面的显示 日期的处理 热门评论的显示和处理 精华页面的搭建 精华页面分为全部、视频、声音、图片、段子五个界面,五个界面可
很多APP都是滑动到底部时点击加载更多才会加载数据,这样用户体验就会有间断感,所以我们想用户看到最后时自动加载数据 怎么做呢
在iOS开发中,有一些技巧可以提高程序猿的开发效率。 1,Xcode真机调试 Xcode 7推出之前,想要真机调试,iOS开发者必须花$99购买苹果开发者账号,而且步骤繁琐,需要下载证书认证。随着苹果公司推出了Xcode 7之后,大幅度的简化了真机调试的步骤。但是如果要测试推送等,还是需要证书的。 第一步:准备Mac电脑,Apple ID, iPhone手机,Xcode 集成开发环境; 第二步:打开Xcode选择屏幕左上角Xcode->Preferences->Account。 第三步,点击左下角的+
yscroll.gif 为了做到这个效果没少走弯路,之前一直使用TableViewHeaderView来做这个,尝试了半天,结果不行。后来去看百度中一张的下拉放大怎么实现的。看到别人使用contentInset....哎、恍然大悟! 写完后才发现,原来并不是想象的那么难嘛!下面说几个注意的点。当然,我已经封装好了。你只需要不多的代码就能搞定啦!有兴趣的朋友去我的Git去下载DEMO就行啦,喜欢给个Star~ 首先,想要下拉缩放上面的轮播图,你得把滑动的Offset传给轮播图。 //告诉drag
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。看看我们日常常见的 App,新闻类的今日头条,社交类的微博和微信,电商类的淘宝、腾讯,日常管理用的备忘录和图片 App 的缩放功能,都或多或少得使用了 UIScrollView 及其子类。
UILabel UITableView 背景色 tableView.backgroundColor = UIColor(hexString: "#f3f3f3", alpha: 0.6); 分割线 tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine; 內边距 self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 64, 0); UITableViewCell 右侧标记 ce
前言 在这里插入图片描述 原文: https://blog.csdn.net/z929118967/article/details/105076636 需求:商户交易汇总表使用tab滑块进行切换/筛
这只是一个简单的listView的小demo 初始化项目之后,index.ios.js代码如下 /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView } from 'reac
MJRefresh是李明杰老师的作品,到现在已经有1w+颗star了,是一个简单实用,功能强大的iOS下拉刷新(也支持上拉加载更多)控件。它的可定制性很高,几乎可以满足大部分下拉刷新的设计需求,值得学习。
自定义UITextView,带有placeholeder,可以设置placeholeder文字的大小和颜色。
前言 分享开发中遇到的问题,和相关的一些思考。 iOS11键盘问题 功能背景: 弹出键盘时,如果有输入框的话,需要输入框的位置跟随键盘大小而变动。 问题描述: 当快速切换键盘之后,容易出现输入框
从CSDN下载Demo:https://download.csdn.net/download/u011018979/19790950
UIScrollView UIScrollView全部API学习。 //1.设定滚定条的样式 typedef NS_ENUM(NSInteger, UIScrollViewIndicatorStyle) { UIScrollViewIndicatorStyleDefault, // black with white border. good against any background 黑白边框 UIScrollViewIndicatorStyleBlack, // black only. small
在前两篇文章里面分别谈了Weex如何在Native端初始化的和Weex是如何高效的渲染Native的原生UI的。Native这边还缺一块,那就是Native产生的一些事件,是怎么传回给JS的。这篇文章就详细分析这一部分。
MJRefresh项目地址 https://github.com/CoderMJLee/MJRefresh 下载下来后我们打开项目可以看到下面的目录 MJ项目结构 MJRefresh目录下就是下
首先结合React-Native 高版本与低版本(0.41.2 与 0.25.1)分析其RN源码(偏向于Android方向)及api
iOS tableView设置style:UITableViewStyleGrouped 时,非第一个section的间距失效的解决方案: 必须全部实现FooterInSection及FooterInSection对应的四个代理方法才有效(四个必须同时实现)
前言 我们大前端团队内部 ?每周一练 的知识复习计划继续加油,本篇文章是 《Hybrid APP 混合应用专题》 主题的第二期和第三期的合集。 这一期共整理了 10 个问题,和相应的参考答案,文字和图
领取专属 10元无门槛券
手把手带您无忧上云