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

UI篇-自定义控件之基类UIControl

自定义控件可以怎样实现 继承自UIView,这是大多数开发者的做法。也能够实现需求,但是一个可交互控件,理应继承于UIControl而非UIView。...继承自UIControl,使用UIControl的一套接口规范来实现自定义。 UIControl的重要方法 Target模式就是从UIControl使用的。...在控件范围内按下并在控件外面拖动的事件 UIControlEventTouchDragEnter 从控件范围外拖动到控件范围内的事件 UIControlEventTouchDragExit 从控件范围外拖动到控件范围内的事件...UIControlEventTouchUpInside 点击控件后在控件范围内释放触发事件 UIControlEventTouchUpOutside 点击控件后在控件范围外释放触发事件 UIControlEventTouchCancel...用于滑块,分段控件,以及其他取值控件。

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

    《iOS Human Interface Guidelines》——Segmented Control分段控件

    分段控件 分段控件是一组线性段,每个按钮对应的功能可以显示一个不同的视图。 API NOTE 查看UISegmentedControl来学习更多关于在你的代码中定义一个分段控件的内容。...一个分段控件: 组合两个或更多的分段,其宽度是基于分段总数按比例分的 可以显示文本或图片 使用分段控件来提供紧密相关而又互斥的选项。 确保每个分段都易于点击。...因为分段控件中的每个分段都有着同样的宽度,如果内容填充了一些分段,而其他的不能完全填充,看起来就不好。 不要在一个分段控件中混用文本和图片。分段控件可以包含文本和图片。...单个的分段可以包含文本或图片,但不能都包含。一般来说,最好不要在一个分段控件中将文本放在某些分段里而将图片放在另一些分段里。 必要的话,调整自定义分段控件中的内容位置。...如果你自定义分段控件的背景,确保控件内容的自动居中依然看起来不错。

    75520

    WPF开源控件库:Newbeecoder.UI轮播控件

    轮播控件是一种强大且视觉上吸引人的方式来呈现多个数据项,本文讨论Newbeecoder.UI轮播控件的原理和一个简单的演示应用程序。...轮播控件是包含Canvas控件的 WPF 用户控件,项目控件是的子元素,位于canvas投影到屏幕平面上的圆上。...该控件实现了一个SelectionChanged事件,允许所有者在通过单击鼠标左键选择项目时收到通知。 旋转是使用计时器实现的,计时器在所选项目更改时启动。计时器每2毫秒触发一次,以确保平稳旋转。...在Newbeecoder.UI轮播控件增加几项属性分别是:PanelMargin(面板距离),CurrentIndex(当前下标)-获取或设置要增加或减少的量,Duration(滚动动画的时长)-获取或设置滚动的持续时间...Demo版下载地址:https://download.csdn.net/download/liaohaiyin/63234875 Newbeecoder.UI控件库根据用户需求开发稳定而高效项目,通过视频来演示控件库整体功能

    2K20

    iOS-UI控件之UITableView(二)- 自定义不等高的cell

    不等高的cell 给模型增加frame数据 所有子控件的frame cell的高度 @interface XMGStatus : NSObject /**** 文字\图片数据 ****/ // .......计算所有子控件的frame、cell的高度 } return _cellHeight; } 在控制器中 实现一个返回cell高度的代理方法 在这个方法中返回indexPath位置对应cell...给子控件做一些初始化设置(设置字体、文字颜色等) /** * 在这个方法中添加所有的子控件 */ - (instancetype)initWithStyle:(UITableViewCellStyle..._status = status; // ....... } 重写-layoutSubviews方法 一定要调用[super layoutSubviews] 在这个方法中设置所有子控件的...frame /** * 在这个方法中设置所有子控件的frame */ - (void)layoutSubviews { [super layoutSubviews]; // ..

    1.3K110

    Android Material UI控件之ShapeableImageView

    Android Material UI控件之ShapeableImageView 前言 你有使用过Material中的UI控件吗?为什么要使用它们,相对于原来的控件优势在哪里?   ...相信你看到这篇文章也会有所疑问,第一个问题就不用说了,那么从第二问题开始回答,Android官方为开发者提供了许多丰富的UI控件,Material 组件就是包含了这些控件的一套工具,多数时候使用它可以满足我们日常开发...UI的需求,提高效率。...你可能会使用第三方库,Glide或者CircleImageView等一些开源库,或者你会自定义ImageView来实现,那么如果我告诉你Material 中的ImageView可以不需要自定义和使用第三方库就能够实现圆形图片或其他一些形状的图片呢...因为我是打算写一个Material UI系列文章的,所以我会新建一个项目。 在app下的build.gradle中的dependencies闭包中增加如下依赖,然后Sync,同步到项目中。

    3.3K41

    子线程能否操作UI控件

    前言 这是一个初级Android工程师面试问题,一般标准答案:子线程不能操作UI控件。 那我为什么还要问这个弱智的问题呢? 因为我心目中的标准答案:子线程不能操作"参与绘制"的UI控件。...一、什么是操作UI 如何理解我的标准答案,首先回答一下,什么叫做操作UI ?...“操作UI”理解成“调用View.invalidate()”。 问题也就变成了:子线程能否调用View.invalidate()。...四、什么是参与绘制 看完上面的内容,肯定有人说答案不就是子线程不能操作UI控件嘛,为什么还要加上"参与绘制"的条件。...以上情况就是属于“不参与绘制”的情况 总结 现在应该理解我的标准答案:子线程不能操作"参与绘制"的UI控件。

    1.2K10

    iOS 自定义分段控制器

    最近做项目时遇到一些问题,就是项目里原有分段控制器的适用范围有些局限,虽然网上也有很多分段控制器的demo,但自己写的,可控性和项目适用性自己能很明白,所以我专门封装这样一个分段控制器,解决不同场景下的功能需求...首先,介绍一下分段控制器,相信大家也都见过这样的场景 ?...nonatomic, strong) UIColor *titleSelectColor; /** 指示器颜色,默认与titleSelectColor一样(注:如不需要,可设置透明色,也可内部去掉这个控件...我们实现属性的set方法,在set方法内部更改UI #pragma mark - set方法 -(void)setBtnViewHeight:(NSInteger)btnViewHeight{...btn.frame = CGRectMake(menuBtnWidth*i, 0, menuBtnWidth, self.btnViewHeight); } } } 到此,自定义分段控制器就已经封装完了

    2K31

    Android Material UI控件之MaterialButton

    Android Material UI控件之MaterialButton 前言   作为Android的开发者,常用控件肯定少不了按钮控件,常规的按钮控件,只能满足基本需求,而日常开发中,都会有渐变按钮...这样就显得有些麻烦了,因为要你时碰到一个花里胡哨的UI和搞事情的产品,你就完犊子了。你会创建很多这样的drawable文件,并且每一个你还要命名规范,改起来是很费劲的。...让你的UI开发变得轻松一些。是骡子是马,牵出来溜溜,下面进入正文: 正文 1....在Android中,你写自定义View,只有三个类型,那就是继承View、继承ViewGroup、继承已有控件(如:TextView、Button、RecyclerView)。...因为现在不是一个控件的点击了,所以要根据id来区分不同的控件的点击,同时我也不想写多余的跳转代码。好了,下面进入MaterialButtonActivity,这才是今天的主角啊。

    4.2K20

    iOS-UI控件之UIButton

    恢复内容开始--- UIButton 既可以显示图片,又可以显示文字,还能随时调整内部位置 系统自带尺寸 storyboard内部调整UIButton属性 状态 监听按钮点击事件 凡是继承自UIControl的控件...forState:(UIControlState)state; - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR...forState:(UIControlState)state; - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state UI_APPEARANCE_SELECTOR...; 自定义UIButton UIButton内部有两个子控件 UILabel和UIImageView 调整控件内部子控件的frame(两种方式) 实现 titleRectForContentRect 和...)imageRectForContentRect:(CGRect)contentRect; 在另一方法中设置子控件的frame /** * 当前控件的frame发生改变的时候就会调用 * 这个方法专门用来布局子控件

    1.4K60

    UI篇-自定义控件中关于父试图中的键盘遮挡问题

    我们平时在设计页面的时候,考虑到MVC的设计模式会出现很多层的试图分离,这里面就不可以避免的出现自定的控件。 我在一次自定义控件中出现了以下问题,记录在案以供大家注意和参考。...(2)当我们自定义控件时,如果控件中包括了UITextFeild 就要考虑到在用到这个自定义的控件的试图的键盘遮挡输入框的情况,一般自定义试图都继承于 BaseView,在这里有键盘遮挡统一的处理方法,...但是要求子试图的 大小要跟屏幕一样大才行,一般自定义控件可能是很小的,所以这个自定义控件就不能继承 BaseView,它的上层View可以继承于 BaseView ,使用代理,当自定义控件中的UITextFeild...(3)给自定义控件初始化的时候可以使用Frame,也可以使用Layout 使用Frame:x,y 坐标初始化为0,大小确定即可,使用Layout 来布局位置。...:initSubView,待自定义控件使用SDAutoLayout设置好后,再调用这个自定义控件中的自定义方法来初始化里面的子视图即可。

    1K10

    WPF 从 用户控件 到 自定义控件

    WPF 从 用户控件 到 自定义控件 独立观察员 2024 年 4 月 29 日 一、用户控件示例:能够朝向上下左右四种方向 在 WPF 中,如果想要复用 Xaml 代码,最先想到的肯定是用户控件(UserControl...,其余都生效了: 不过这么一折腾,最后发现,这不就是殊途同归到了 “自定义控件(CustomControl)” 上去了嘛?...得,还是改为自定义控件吧。这用户控件,真是从 质疑自定义控件,到 理解自定义控件,再到 成为自定义控件 啊。...三、迁移为自定义控件 新建自定义控件: 修改名称后会生成一个继承自 Control(也可以自己手动改为 ContentControl 或其它类型) 的类,还会在 Themes/Generic.xaml...: 然后使用时即可随意设置属性了,也支持全局样式设置,而且不需要 BaseOn: 看来还是自定义控件强大啊,就是这个样式与类分离开来(不像用户控件一样在一个前后台)的组织形式有点不舒服,希望微软改进。

    2.3K10

    MFC的自定义控件之控件封装

    MFC实现CListBox的继承实现自定义效果 目标 - 实现有背景颜色项的列表 思路 需要知道CListBox的每个item的绘制方法 需要知道CListBox的item的测量方法 查看源码找到关键的量重写的方法...LPDRAWITEMSTRUCT lpDrawItemStruct); virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); 开始实现 自定义控件的操作步骤...参考https://www.jianshu.com/p/e2fe069cfe35这边MFC的定义控件步骤 再创建控件类的时候,父类要选择CListBox 有个不一样的是在界面上的控件,可以是CListBox...,也可以是Custom Control,只需要在控件属性的class 写成我们自定义的类名。...,设置对应的控件属性, 列表控件才能显示数据,该方法必须调用,才可以正常显示数据 BOOL CColorListBox::InitControl(CWnd* pWnd) { if (pWnd =

    2.4K10
    领券