首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

UITextField 是单行文本; -- 不能触发事件 : UITextView 没有继承 UIControl 控件, 不能绑定 IBAction 事件处理方法; -- 可滚动 : UITextView...UIScrollView 属性简介 (1) UIScrollView 简介 UIScrollView 简介 :  -- 显示内容多 : 可滚动控件, 可以使用手指拖动控件中内容, 在其中可以显示多个屏幕内容..., 代表 UIScrollView 可视区域显示内容上滚动距离; (3) Scroll Indicators 属性 Scroll Indicators 属性 :  -- Shows Horizontal...Indicator : 水平滚动 Scroll View 时, 显示水平滚动条; -- Shows Vertical Indicator : 垂直滚动 ScrollView 时, 显示垂直滚动条; (..., 如果拖动手指不能启动一个滚动事件, 会调用 touchesCancelled 方法, 建议勾选;  3.

6.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

iOS开发中解决UIScrollView滚动时NSTimer失效问题

我曾经遇到过这样问题,但需求是即使滑动scrollView,NSTimer也不能失效,于是就好好地研究了下这个问题。最终发现是NSTimer选择一个模式问题。...,并且选择NSDefaultRunLoopMode这个默认模式。...在选择这个默认模式之后,如果我们不与UI进行交互那么NSTimer是有效,如果我们与UI进行交互那么主线程runloop就会转到UITrackingRunLoopMode模式下,不能处理定时器,从而定时器失效...让定时器不失效方式有两种:1.改变runloop模式(NSRunLoopCommonModes),无论用户是否与UI进行交互主线程runloop都能处理定时器。...2.开启一个新线程,让定时器在新线程中进行定义,这时定时器就会被子线程中runloop处理。

1.3K20

UIScrollView一步步实现1 简介1.1 工作原理1.2 UIScrollView常见几个重要控件1.3 UIScrollView常见重要属性1.4 手工代码实现拖动2 三个重要属性

普通 UIView 不具备滚动功能,不能显示过多内容。...设置UIScrollView滚动范围 contentOffset UIScrollView当前滚动位置 contentInset 增加滚动视图四周增加滚动范围 bounces 是否有弹簧效果,默认是开启...scrollEnabled 是否能滚动 showsHorizontalScrollIndicator 是否显示水平方向滚动条 showsVerticalScrollIndicator 是否显示垂直方向滚动条...通过修改 contentOffset 调整内部视图坐标位置,从而给用户产生一种视觉上滚动效果 contentOffset 值本质上就是 bounds 原点(origin) 值,苹果在为了方便程序员理解...决定了水平方向滚动距离 contentSize height 决定了垂直方向滚动距离 2.3 contenInset contentInset是用来设置内边距。

1.5K60

有意思水平横向溢出滚动

来看看这么一种情况: 我们有一个垂直方向溢出滚动容器,以及一个水平方向溢出滚动容器: 如果使用是非触控板(大部分用户没有触控板),而是使用鼠标来进行操作,会发现,这两个容器中,只有垂直方向溢出滚动容器...,是可以响应鼠标滚轮: 垂直方向溢出滚动容器,正常响应鼠标滚轮,可滚动内容 水平方向溢出滚动容器,不会响应鼠标滚轮,不可滚动内容 那么,这里可能就是一个用户痛点。...那是必须,本文就将介绍一种可能可行技巧,在特定场景下在水平方向溢出滚动容器,依然可以用鼠标滚轮进行滚动。 旋转大法 是的,既然只有垂直方向溢出,才能响应滚轮操作。那我们不妨从这个角度入手。...,就变成了水平容器,图中鼠标没有在滚动条上容器运动就是通过滚轮实现。...其他用途场景 这个技巧,只有特定一些场景才适用。 如果内部 DOM 复杂一点,整体改造成本就非常高了,不太适合。

2.5K10

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

淘抢购页面.png 可以发现,只要滚动到了中间红色那块区域文字,颜色都会变成白色。。。 脑洞了很久也没有想到思路!后来网上查找,从一篇文章中得到了灵感 视错觉结合UI。...实现: 知道了原理,那就开始构思: 1、我实现思路是用UICollectionView来实现滚动菜单; 2、需要两个UICollectionView,UICollectionViewCell文字内容一样...; #pragma makr - 同步滚动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { UICollectionView *...我初衷其实就是把这个滚动菜单封装出来,后来发现使用这个菜单大部分情况都是和多个子控制器一起使用,所以就再进行了一步封装,把控制器逻辑都封装到了GFPageViewController控制器中。...其中比如自定义View正确姿势;UIScrollView中一些代理使用细节问题;让自己组件支持Pods等。 获取源码方式:点击左上方「网罗开发」关注并回复 “210425” 即可获取。

1.3K20

【IOS开发基础系列】UIScrollView专题

ScrollView本身不能绘制,除非显示水平和竖直指示器。滚动视图必须知道内容视图大小,以便于知道什么时候停止;一般而言,当滚动出内容边界时,它就返回了。         ...当手势在处理过程中,滚动视图不能够给子视图,发送任何跟踪调用。...那么这里就有疑问了,既然该属性设置未来NO了,那么岂不是UIScrollView不能处理任何事件了,那么为何在子视图上快速滚动时候,UIScrollView还能移动那。...我们设置这个cancancelContentTouches属性为NO时,只是让UIScrollView不能发送cancel事件给子视图。...directionalLockEnabled     默认是 NO,可以在垂直和水平方向同时运动。当值是 YES 时,假如一开始是垂直或者是水平运动,那么接下来会锁定另外一个方向滚动

37830

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

关键词:#UIScrollView UIScrollView 上显示内容区域被称为 contentView。...比如具体 item 尺寸大小, item 之间间距,header 和 footer 大小和间距,以及 UICollectionView 滚动方向。...可能原因是大量操作或耗时计算阻塞主线程。 数据源问题。可能原因是网络请求太慢,不能及时得到相应数据;也有可能是需要更新数据太多,主线程一时处理不过来。 然后我们针对三个问题,分别去进行优化。...9.说说实现预加载方法 关键词:#网络传输 #无限滚动 #Threshold 在实际开发中,列表经常需要随着滑动而不停展示新内容。在滑动到一定程度后,我们就需要发送网络请求,以获得新数据。...网络请求是一种耗时且昂贵操作,为了提高用户体验,开发者经常运用预加载方式提前请求,这样可以在用户滑动到列表最底部之前提前获得最新数据,无需让用户等待。这就是无限滚动列表。

2.6K21

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

通常iOS实现滑动会有两大选择:UIScrollView和UITableView;(UICollectionView和UITableView类似) UIScrollView存在一个较大局限:上面的视图资源无法回收利用...综上分析,这里提供一个基于UIScrollView方案,避免去手动计算速度,也可以及时回收内存,并且contentSize一直保持不变。...此时我们回收vcB,然后将UIScrollViewY偏移重新改为view.height,回到了初始化状态。...同理,我们可以处理向上滑动情况。至此,我们可以不依赖UITableView完成无限视图滚动,同时避免各类touch事件处理和加速度计算。 ?...遇到问题(Q&A): Q:如何实现UIScrollView改变offset,但是继承原来速度?

3.1K10

iOS开发UIScrollView使用详解 原

iOS开发UIScrollView使用详解 一、ScrollView常用方法和属性 @property(nonatomic)CGPoint contentOffset; 设置滚动偏移量 @property...,默认为NO,当设置为YES时,你滚动视图只能同一时间在一个方向上滚动,但是当你从对角线拖动时,是时刻在水平和竖直方向同时滚动。...@property(nonatomic) BOOL alwaysBounceHorizontal; 是否开启水平方向回弹效果 @property(nonatomic,getter=isPagingEnabled...(默认设置为YES,当scrollView触发事件时候,其子视图不能触发,如果设置为NO,则子视图会继续触发事件) - (BOOL)touchesShouldBegin:(NSSet *)touches...scale; 视图内容结束缩放时触发方法 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;  返回yes,开启快捷滚动回顶端

1.6K30

ViewPager2实现内部Item动态滚动

但是首先你要考虑东西就很多,如果视频详情页超出一屏呢,也就是内部用了 RecyclerView或者NestedScrollView 呢,是不是还需要处理一下滑动冲突,当然这也不是很困难,内部拦截法就可以搞定...ViewPager2.fakeDragBy(x) 内部最终是调用了RecyclerView scrollBy() ,也就是相对滑动,哦原来如此,难怪调了一下,滑了这么远。...解决方法 既然如此,ViewPager2是基于RecyclerView,那么我去调用RecyclerView滚动不就行吗,思路如下: ViewPager2-> RecyclerView, RecyclerView...() 支持滚动到偏移位置 伪代码如下: val layoutManager = (getChildAt(0) as?...需要注意点 就如我上面最开始分析时所述,如果详情页是可滑动,那么就必须处理一下滑动冲突,相应方式也很简单,使用内部拦截法,让滑动View优先获得事件即可,当处于滑动View顶部时,再将事件还给父

1.5K20

静态内部类和内部区别_内部不能定义为抽象类

今天稍微复习一下 静态内部类和 内部相关知识,平常很少用 静态内部类 静态内部类,不能访问外部类非静态成员 静态内部类 不需要创建外部类对象就可访问(外部类名.内部类 比如new MyMain.Person...public void display() { // System.out.println(num);//不能直接访问外部类非静态成员 // 静态内部不能访问外部类非静态成员(包括非静态变量和非静态方法...{ new MyMain.Person().display();//The type MyMain.Person is not visible } } 内部内部类中不能有静态成员 可以访问外部类成员变量...(外部类名.this.变量名) 可以定义在方法外(可以有访问修饰符)和方法内(不能有访问修饰符,这个就是匿名内部类了) public class TestInner { private static...正常情况下,你不能在接口内部放置任何代码,但嵌套类可以作为接口一部分,因为它是static

33020
领券