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

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

UITextView 简介 (1) UITextView 继承结构 UITextView 继承结构简介 :  -- 基类 : 继承了 UIScrollView : UIView 控件, 默认这些控件都自带滚动条...委托方式 : UITextView 将事件交给委托对象处理, 其委托对象实现了 UITextViewDelegate 协议, 下面介绍该协议的各种方法; -- "- textViewShouldBeginEditing...将按钮设置到工具条中 :  //将按钮放在集合中 NSArray * buttonArray = [NSArray arrayWithObjects:buttonItem, spaceItem...] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(finish)]; //将按钮放在集合中...] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(finish)]; //将按钮放在集合中

6.9K20

UITextView 手势触发 TouchesBegan 函数

,手势触摸时,其实触发的是当前view重构父类的touchesbegan函数,而加载UITextView时,UITextView 其实也有相应的touchesbegan函数,UITextView 继承UIScrollView...所以说,当你点击UITextView想触发相应手势函数,是做不到了,因为它始终触发的是当前view的手势函数,明白了吧,现在来说做法。...,就会触发MytextView 中的touchesBegan 函数了,再在相应的手势函数中就可以做相应的操作了。...最后,如果想要通过手势改变文章字体,图片等,如果文章较长,可能会先会滚动,从而忽略掉手势操作。...那你就需要设置下了将canCanelContentTouches 设置为NO, 多点触发multipleTouchEnabled设置为YES,delaysContentTouches设置为NO,后两个必须设置

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

    编码篇-iOS开发中的奇巧小伎

    1.TableView不显示没内容的Cell 2.百分号的转换 3.禁止手机睡眠 4.跳进app权限设置 5.collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动: 6.设置navigationBar...某个角添加圆角 13.将一个view放置在其兄弟视图的最上面、最下面 14.让手机震动一下 15.摇一摇功能 16.修改UISegmentedControl的字体大小 17.获取一个view所属的控制器...文字周围增加边距 41、比较两个UIImage是否相等** 42、代码方式调整屏幕亮度 43、float数据取整四舍五入 44、让正在滑动的scrollView停止滚动(不是禁止,而是暂时停止滚动)...45、使用xib设置UIView的边框、圆角 46、将一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写 48、获取字符串中的数字 49、自动搜索功能,用户连续输入的时候不搜索,用户停止输入的时候自动搜索...5.collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动: collectionView.alwaysBounceHorizontal = YES; collectionView.alwaysBounceVertical

    5.4K10

    iOS表情键盘的完整实现

    话不多说,下面开始正文(注:本文对应的Demo放在Github上:github.com/VernonVan/P…)。...首先是QQ和微信,这两者差不多,切换到表情键盘的时候都是没有光标的,这样的用户体验是非常不好的,没有办法在输入表情的时候框选区域,也不能拖动光标进行特定位置的复制黏贴删除等操作,微信甚至在输入框里显示的都不是点击的表情图片...接下来看一下微博国际版,国际版调起表情键盘时是有光标的,是一个"真正的"键盘,但是想要拖拽光标的时候,很大概率上会触发到保存图片的行为(如下图所示),导致根本没办法拖动光标。 ?...表情功能,UITextView都是用NSAttributedString进行赋值的,并且我们底层其实还是用上面说到的纯文本进行实现的,那么把 [笑死] 转成 ?...将检测到是表情的文本替换成对应的图片 [attributeContent replaceCharactersInRange:self.selectedRange withString:@

    2K30

    函数响应式编程及ReactiveObjC学习笔记 (三)

    我们先从UITextView+RACSignalSupport.h开始看 #import @class RACDelegateProxy; @class RACSignal...另外也只能处理没有返回值的代理方法 可以到UITextview+RACSignalSupport.m里面看看, 也是类似这样用的 - (RACDelegateProxy *)rac_delegateProxy...类别唯一的方法 - (RACSignal *)rac_textSignal; 大家可以看到, 这个方法会返回一个信号 我们可以对他订阅, 试试看 UITextView *textView..., 直接给大家一个例子: 大概效果为我们在Controller中添加一个UITextField跟一个UIDatePicker, 然后获取他们的RACChannelTerminal, 将UIDatePicker...绑定给UITextField, 当我们滚动datePicker的时候 textField的值会跟着改变   UIDatePicker *datePicker = [[UIDatePicker alloc

    91520

    iOS 文本输入控制(献上框架)

    于是,我写下这篇文章,总结一下关于UITextField和UITextView输入控制的那些事儿,并且还献上一个框架。...二、解决办法 对于UITextField监听文本变化的方式一般分为两种,一种是输入已经绘制到界面上之后,一种是还未绘制之前。...看到这里,会想到何时将textFiled的代理设置为这个中间代理YBInputControlTempDelegate呢?...(解决方法在github里面有讲,只是在对应方法调用一下框架方法就行了) UITextView不能使用该方案 其实,采用这种处理办法可能会带来某些隐患。...这当中使用到了runtime的几个方法和处理了方法调用周期,从技术上说不算难,但是为了实现某个需求而深入探究本质将这些点结合起来,就不是一件容易的事。

    1.1K120

    浅析RunLoop原理及其应用

    将英文拆解不难理解其实RunLoop表示一直在运行着的循环或者从上面的定义源码中可以看出就是一个do..while..循环。当启动一个iOS APP时主线程启动与其对应的RunLoop也已经开启。...UITextView当用户滑动UITextView时验证码的倒计时是停止的,这是因为主线程的RunLoop模式是UI模式这个时候RunLoop循环是优先处理UI模式的任务而忽略了默认模式的计时器。...这个模式下滑动UITextView或停止的时候RunLoop是在UITRacking和default模式下切换的(从打印日志中可以看出)。...将耗时操作放到 DefaultMode 里只能解决滑动时流畅,但是停止时需要加载耗时,仍然会有卡顿的感觉。...操作在必须放在主线程,但是弊端就是太多图片的处理会阻塞tableview的滑动流畅性 for (int i = 1; i < 4; i++) { UIImageView *imageView

    97520

    图文混排

    你可以完全控制位置、布局、类似文本大小和颜色这样的属性,而 Core Text 将帮你完善其它的东西——类似文本换行、字体呈现等等。...6、当布局完成,文本的当前显示状态被设为无效,然后文本管理器将前面几步排版好的文本设给文本视图。...4、NSTextContainer NSTextContainer描述了文本在屏幕上显示时的几何区域,每个text container与一个具体的UITextView相关联。...为此,每个文本视图都有一个文本容器,它精确地描述了这个可用的区域。在简单的情况下,这是一个垂直的无限相当大的矩形区域。文本被填充到这个区域,并且文本视图允许用户滚动它。...5、UITextView UITextView作为显示出来的实际的文本视图,在 TextKit 中,文本视图有两个目的:第一,它是文本系统用来绘制的视图。

    1.5K30

    ios 浅谈一下UITextFiled UITextView 在tableview的cell上边展示

    要做到在tableview的cell上边加一个输入框。允许用户输入。 1.我首先选的是在uitextView  然后在通知键盘出现的时候,将tableview的内容设置在键盘的上边。...这是重点,我觉得只有一行,而且也不能左右滑动,我百度了好久,谁要是知道怎样左右滑动,请告诉我,可以留言在下边的评论区,在此多谢了。这可咋整呀。 3.既然这都不行了。只能用老办法了。...因为uitableviewcontroller自动有滑动的功能。感兴趣的可以翻一翻我的博客。 问题,完胜解决。...最近我又遇到了问题,就是uitaleviewcontroller  中的uitableview 的style 是pain  有人想用group的怎么办。...这问题,做了老半天吗,没想到还是用的老办法,呵呵,一句呵呵送给自己。

    66850

    iOS界面布局之三——纯代码的autoLayout及布局动画

    100*100,位置放在屏幕的中央,我们可以使用如下的约束代码: UILabel * label = [[UILabel alloc]init];     label.numberOfLines = 0...20,如果这个20是一个变量width,我们可以将20的地方换成width,然后配置这个字典:@{@"width":@20},这样,在布局时,系统会把width换成20。...views是对象的映射字典,原理也是将字符串中的对象名label映射成真实的对象,NSDictionaryOfVariableBindings会帮我们生成这样的字典,我们只需要想对象传进去即可,如果要手动创建这字典... () {     UITextView * textView ;     NSArray * array1;     NSArray * array2; } @...textView = [[UITextView alloc]init];     textView.layer.borderColor = [[UIColor grayColor]CGColor];

    2.9K30

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    用活动指示器来让用户知道进程仍在进行中。有些时候,告诉用户进程没有停止比告诉他们何时完成更加重要。 设计一个与应用的风格协调的活动指示器。可以的话,让活动指示器的尺寸和颜色与它所在的背景协调。...文本框 高度固定,包含圆角 当用户点击它时,自动唤起输入键盘 可以包含系统提供的按钮,如书签按钮(Bookmarks) 可以展示多种文字样式(了解更多请参考 UITextView) 使用文本框来获取用户输入的少量信息...尤其是: 如果这个按钮不会造成损害性结果,又是用户最有可能会选择的操作,那么它应该放在右边,取消按钮则应该放在左边。...如果这个按钮会造成损害性后果,又是用户最有可能会选择的操作,那么它应该被放在左边,取消按钮应该放在右边。...避免让用户滚动操作列表。如果你的操作列表中存在过多按钮,用户必须要滚动才能看完所有操作。这样的体验是可能让用户不安,因为他们要花更多的时间来充分理解每个选项的区别。

    13.2K30

    解决UITableView中Cell重用机制导致内容出错的方法总结

    上面主要是一个个的UITableViewCell,可以让UITableViewCell响应一些点击事件,也可以在UITableViewCell中加入UITextField或者UITextView等子视图...,会将滚出屏幕的单元格放入 重用的queue中,当某个未在屏幕上的单元格要显示的时候,就从这个queue中取出单元格进行重用。...比如,当一个cell含有一个 UITextField的子类并被放在重用queue中以待重用,这时如果一个未包含任何子视图的cell要显示在屏幕上,就会取出并使用这个重用的 cell显示在无任何子视图的cell...解决方法: 方法1 将获得cell的方法从- (UITableViewCell*)dequeueReusableCellWithIdentifier:(NSString*)identifier 换为-(...重用机制是根据相同的标识符来重用cell的,标识符不同的cell不能彼此重用。于是我们将每个cell的标识符都设置为不同,就可以避免不同cell重用的问题了。

    2.5K50

    深入理解RunLoop及在开发中的应用

    Source0:非基于端口port,例如触摸,滚动,selector选择器等用户触发的事件;(只包含了一个回调函数,它并不能主动触发事件) Source1:基于端口port,一些系统事件; (包含了一个...控制线程生命周期(线程保活) 在项目中,有时我们需要创建子线程,因为如果把所有的事情都放在主线程中去做,就会阻塞住主线程。导致APP 看起来很卡。...解决NSTimer在UIScrollView滑动时停止工作的问题 默认情况下,在滚动 tableView、UIScrollView 的时候,NSTimer会停止工作,这是因为在滚动时,RunLoop...会进入另一个Mode 模式UITrackingRunLoopMode 下,在该模式下,定时器就会停止,当不在滚动 UITextView , 定时器会重新开始。...(应用最常见的应该为轮播图自动播放时) 边滚动,定时器边工作,我们就可以用NSRunLoop的默认模式: static int count = 0; NSTimer *timer =

    1.3K20

    MyLayout&TangramKit 的重大升级!

    很明显UIView类的返回值是默认值,而UILabel和UITextView这些类则重载了这个方法并返回了根据自身内容计算出来的尺寸。...如果不需要上下滚动则改为将容器视图的高度等于UIScrollView视图高度即可。 如果需要左右滚动则将容器视图中的最右边子视图的右边边界依赖于容器视图的右边边界。...如果不需要上下滚动则不要这样设置,而是改为将容器视图的高度等于滚动视图高度。...2.UIScrollView的滚动 MyLayout&TangramKit对于处理和UIScrollView进行结合时进行特殊处理,当将一个布局视图添加到滚动视图时,布局系统内部会负责处理滚动视图的contentSize...要实现UIScrollView滚动时,只需要在一个滚动视图内添加一个布局视图,然后将所有其他子视图都添加到这个布局视图中去,这个和上面的AutoLayout的处理方式是一样的,最后将布局视图的尺寸自适应属性设置为

    2.1K20

    小程序iOS客户端框架——控件事件逻辑框架与控件原生化(下)

    ,让开发者具有更广阔的开发想象空间;输入控件分别引入了iOS原生的UITexField和UITextView,提供了HTML输入框无法满足的定制化输入键盘等功能。...负责绘制网页中的全部HTML元素,视频控件插入后将覆盖网页中的所有HTML元素: ?...这一问题可以通过将H5的弹出组件都原生化得以解决,如上节提到的Toast、Alert、Picker、ActionSheet的原生化; 3 如果开发者在div滚动条中插入原生控件作为div的子节点,预期原生控件应该随着父节点...div滚动条的滚动而移动,并且超出div区域的内容应该被裁掉,但是由于原生控件是直接插入到webview下,与div之间没有关联,所以不会跟随移动也不会被裁减,在表现上会出现与开发者预期不一致的情况,影响用户体验...(大小位置均一致),保存其对象指针,并分配一个id返回给WEB端; c、当WEB端插入原生控件时,通过接口传入id通知客户端:该原生控件属于哪个div滚动条,客户端找到该滚动条对应的原生UIScrollView

    2.9K40
    领券