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

【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

; -- Bar : 分段控件使用工具条风格; (2) State 属性 State 属性 :  -- Momentary 复选框 : 勾选复选框后, 分段控件不保存控件状态, 如果勾选后, 点击高亮..., 按钮等信息, 按钮监听需要创建 UIAlertView 的 UIAlertViewDelegate 委托对象; -- 显示 UIAlertView : 调用显示 UIAlertView 的显示方法;...void) alertView : (UIAlertView *) alertView clickedButtonAtIndex : (NSInteger) buttonIndex :" 方法 : 用户单击对话框中的按钮激发的方法...) alertView : (UIAlertView *) alertView willDissmissWithButtonIndex : (NSInteger) buttonIndex" 方法 : 单击按钮将要隐藏警告框激发该方法...按钮 UIActionSheet 固定按钮 :  -- 取消按钮 : 灰色背景, 主要用于取消该 UIActionSheet 控件显示; -- 销毁按钮 : 红色背景, 用于删除某记录, 使用按钮确认销毁

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

iOS-视频播放器的简单封装

中间播放按钮的点击 - (IBAction)playOrPauseBigBtnClick:(UIButton *)sender { // 隐藏中间播放按钮,工具栏播放按钮为选中状态 sender.hidden...replaceCurrentItemWithPlayerItem:self.playerItem]; [self.player play]; [self addProgressTimer]; } 此时,当我们点击中间播放按钮播放器就可以播放视频了...重播按钮和全屏播放按钮的实现 在定时器每秒调用的更新Slider的方法中判断当视频播放完毕之后,显示遮盖View,而重播按钮的实现,其实就是将Slider的value置为0并重新调用点击Slider松开的方法...,将当前播放时间置为0,重新隐藏遮盖View,并调用中间播放按钮开始播放。...简单封装 此时已经实现了播放器基本的功能,接下来考虑如何封装能使我们使用起来更加方便,其实我们已经将大部分封装完成,接下来需要做的就是提供简单易用的接口,使外部可以轻松调用实现播放器。

1.8K110

iOS_38_手势

) 一个UITouch对象,代表着一根手指,手指移动,UITouch对象实时更新 一个UITouch对象,相应一根手指,记录着触摸的全部信息 重要~常常使用UITouch的方法,取得触摸的信息...(如位置、所点对象) 事件对象UIEvent,经常使用的属性是:事件类型 触摸的四个方法(即过程)具体解释:注意同一候和一前一后触摸的情况 必须先找到事件的最合适的响应者(从父到子地找...*tap = [[UITapGestureRecognizer alloc] init]; // 两根手势,连续敲击2次,手势才干识别成功 tap.numberOfTapsRequired...(识别到了相应的手势,就会调用监听方法) UIGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self...)clear;// 撤销- (IBAction)undo;// 保存至相冊- (IBAction)save;@end@implementation PaintController// 清除画板- (IBAction

91220

iOS-手势UIGestureRecognier详解一. 手势UIGestureRecognier简介二. 手势的抽象类——UIGestureRecognizer三. UIGestureRecogni

touch事件传递的方法将被终止而不执行,如果设置为NO,touch事件传递的方法仍然会被执行,上例中我们使用了拖拽手势和touchesMoved两个触发方式,当我们把cancelTouchesInView...pan.cancelsTouchesInView = NO; 而当我们将pan.cancelsTouchesInView = YES属性设置为YES,打印结果如下 ?...因此当我们设置pan.delaysTouchesBegan = YES;打印内容如下 ?...比如,单击和双击并存,如果不做处理,它就只能发送出单击的消息。为了能够识别出双击手势,就需要用下面的方法一个特殊处理逻辑,即先判断手势是否是双击,在双击失效的情况下作为单击手势处理。...点击手势——UITapGestureRecognizer 点击手势十分简单,支持单击和多次点击,在我们手指触摸屏幕并抬起手指时会进行触发,其中有如下两个属性我们可以进行设置: //设置点击次数,默认为单击

2.5K50

按钮与交互-使用按钮触发操作

在本节中,我们将介绍一个重要且简单的元素,即按钮。这个小元素可以改变整个UX。我们将使用按钮来缩放我们的3D模型。此外,我们将尝试更改手机的壁纸。...主要故事板 我们在屏幕上放置一些按钮使用模板,主故事板附带一个ARSCNView,我们无法在其上放置按钮。首先,删除ARSCNView并放置UIView。...在布局中,将ARSCNView放在View下方,否则按钮将不会显示。 ? 约束 IBAction为 现在我们有了按钮,我们需要给它们功能。通过单击右上角带有双圆圈的图标启用助理编辑器。...调用节点并访问其漫反射材质。然后,转到art.scnassets并找到不同的屏幕。对我们来说,它是AR-Screen.png。...到目前为止,您可以使用按钮执行许多令人惊叹的事情。 原文: https://designcode.io/arkit-buttons

4.5K20

iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用

UITapGestureRecognizer * ges = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(click...UIGestureRecognizerStateCancelled,  // 手势识别取消     UIGestureRecognizerStateFailed,     // 识别失败,方法将不会被调用...touchesMoved两个触发方式,当我们把cancelTouchesInView设置为NO,在屏幕上滑动,会发现两种方式都在触发,打印如下: ?...UITapGestureRecognizer * ges = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(click...        点击手势十分简单,支持单击和多次点击,在我们手指触摸屏幕并抬起手指时会进行触发,其中有如下两个属性我们可以进行设置: //设置点击次数,默认为单击 @property (nonatomic

1.7K20

慎用公共变量~~

. */ 当宿主对象被释放,会根据指定的内存管理策略来处理关联对象。...如果指定的策略是OBJC_ASSOCIATION_ASSIGN,则宿主释放,关联对象不会被释放; 而如果指定的是Retain或者是Copy,则宿主释放,关联对象会被释放。...当我们需要在多个线程中处理访问关联对象的多线程代码,这就非常有用了,实现线程和逻辑绑定。...另外,如果我们使用同一个key来关联另外一个对象,也会自动释放之前关联的对象,这种情况下,先前的关联对象会被妥善地处理掉,并且新的对象会使用它的内存。...然后,处理单击事件,具体实现如下: - (void) JL_handleActionForTapGesture:(UITapGestureRecognizer *)sender { if (sender.state

76240

iOS14开发-触摸与手势识别

属性 (1)window:触摸所处的 UIWindow。 (2)view:触摸所处的 UIView。 (3)tapCount:短时间内点按屏幕的次数。可据此判断单击和双击操作。...通过这两个方法可以做很多事情,其中一个经典的案例是自定义中间有凸起按钮的 UITabBar。...此时需要重写 UITabBar 的point方法,判断当前触摸位置是否在中间凸起按钮的坐标范围内,如果在返回 true。这样可以让触摸事件传递到凸起按钮,并让其成为最佳响应者。...使用步骤 创建手势实例,指定回调方法,当手势开始,改变、或结束,回调方法被调用。 将手势添加到需要的 UIView 上。...每个手势只对应一个 UIView,当屏幕触摸在当前 UIView 里,如果手势和预定的一样,回调方法就会调用。 手势可以通过 storyboard 或者纯代码使用

2.2K20

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

UIControl 介绍 (1) UIControl 简介 UIControl 简介 :  -- 使用频率 : UIControl 控件一般不会被使用, 经常被使用的是 UIControl 的子类 UI...按钮属性详解 (1) Type 属性 Type 属性 : 如果需要自定义按钮, 使用 Custom 属性; -- Custom : 外观靠开发者设置, 效果如下 :  -- System : 默认按钮风格...Clear Button 属性 : 文本框右边的 x 标识按钮, 用户单击该图片, 清空文本框内容; -- Never appears : 不显示清除按钮; -- Appears while editing...: 编辑内容显示清除按钮; -- Appears unless editing : 除了编辑之外, 都会显示清除按钮; -- Is always visible : 一直可见; Clear when...设置 IBAction :  -- 设置过程 : 使用 control + 鼠标左键, 将背景控件 UIControl 设置 IBAction 到 OCViewController.h 中; -- IBAction

6.6K20

setNeedsLayout和layoutIfNeeded看我就懂!

强制刷新布局,调用 setNeedsLayout,如果想马上刷新界面,调用layoutIfNeeded 二、setNeedsLayout跟layoutIfNeded setNeedsLayout调整视图的子视图的布局...把viewRed的Constraints拖到ViewController.swift,并作为属性 下面我用一段代码验证下 @IBAction func adjustedBtnClick(_ sender...UIView.animate(withDuration: 2.0) { self.view.layoutIfNeeded() } } 当按下按钮...在这种情况下单击按钮将立即根据更新的约束更新视图大小,而不是动画更新。等一下,如果我们没有使用layoutIfNeeded,为什么会立即? 对我们而言,红色视图的大小变化立即发生。...起初它似乎是反直觉的,因为我们没有使用layoutIfNeeded强制立即更新。

2.6K90

iOS小技能: 限制按钮的点击频率(Target-Action设计模式的运用)

UITapGestureRecognizer 手势的实现的,同理也是可以类似地进行Method Swizzling实现响应频率的限制 UITapGestureRecognizer *cutTap...= [[UITapGestureRecognizer alloc] init]; [[cutTap rac_gestureSignal] subscribeNext:^(id x) {...objc_setAssociatedObject(self, @selector(timeInterval), @(timeInterval), OBJC_ASSOCIATION_RETAIN_NONATOMIC); } //当我按钮点击事件...sendAction 将会执行 mySendAction - (void)mySendAction:(SEL)action to:(id)target forEvent:(UIEvent *)...使用:由于采用分类在UIButton的load进行方法交换,因此只要项目包含分类文件即可 测试:快速多次点击按钮 在这里插入图片描述 //一根或者多根手指离开view,系统会自动调用view的下面方法

80120

慎用公共变量

会根据指定的内存管理策略来处理关联对象; 如果指定的策略是OBJC_ASSOCIATION_ASSIGN,则宿主释放,关联对象不会被释放; 而如果指定的是Retain或者是Copy,则宿主释放,关联对象会被释放...当我们需要在多个线程中处理访问关联对象的多线程代码,这就非常有用了,实现线程和逻辑绑定。...会自动Release关联对象; 另外,如果我们使用同一个key来关联另外一个对象,也会自动释放之前关联的对象。...函数将key指定的关联对象设置为nil; 举个栗子 在开发工程中,给UIView添加单击手势是非常常见的需求。...注意Block对象的关联内存管理策略-Copy; 然后,处理单击事件,具体实现如下: - (void) JL_handleActionForTapGesture:(UITapGestureRecognizer

56420

iOS-QQ音乐播放器的简单实现

self.progressSlider.value = self.currentPlayer.currentTime / self.currentPlayer.duration; } 注意:当我们在播放音乐方法里面添加定时器的时候需要先移除定时器...#pragma mark - slider 事件处理 - (IBAction)start { // 移除定时器 [self removeProgressTimer]; } - (IBAction...- (IBAction)sliderClick:(UITapGestureRecognizer *)sender { // 1.获取点击到的点 CGPoint point = [sender...播放暂停、上一首、下一首的点击处理 监听播放按钮点击 播放按钮有播放和暂停两个状态,程序一开始运行就自动播放,所以首先需要在音乐一开始播放的时候修改播放按钮的selected。...+1; } CLMusicModel *previousMusic = _musics[index]; return previousMusic; } 此时点击上一首或者下一首按钮

2.8K130

添加多个屏幕-创建格线布局

在上一节中,我们学习了如何使用按钮更改iPhone的屏幕。让我们进一步推动!我们将实现一个CollectionView,我们将能够切换到您想要的壁纸。该的CollectionView将是滚动的水平。...然后,在viewDidLoad中,调用IBOutlet并将其委托给self。这样,我们的ViewController将能够使用我们的Collection View。另外,将数据源设置为self。...关闭 Collection View 当我们点击按钮,我们想要关闭Collection View。转到主故事板,启用Assistant Editor,从按钮创建IBAction。...使用segue的名称声明一个if语句。这样,您确定在调用此segue,我们将执行操作。将委托设置为self。我们需要使用委托来指定我们正在调用,否则,View Controller不知道。...cell.index = indexPath.row 返回UIImage 当我们点击按钮,它将在函数中返回UIImage类型的图像。为ARScreen的图像声明一个新数组。

2.9K40
领券