import EventKit /** Privacy - Calendars Usage Description 添加日历权限 info.list 配置权限 */ /// 日历添加事件 class...KKAddEventClasse: NSObject { /// 添加成功回调 typealias SuccessAddEvent = ((_ identifier: String)...默认添加 var isAddAlarm:Bool = true /// 添加闹钟(开始前多少秒)若为正则是开始后多少秒。...("添加异常") } } } 使用: let event = KKAddEventClasse() /// 添加 event.addEventByTime(time:...eventIdentifier = eventIdentifier }, errorAddEvent: {(error) in print(error) }) /// 删除
本篇文章只有一个目的,那就是只要遵守协议,一行代码随意切换全屏~ 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程(一) iOS - Swift 面向协议编程...= nil, specifiedView: UIView? = nil, superView: UIView?...是否进入全屏 specifiedView UIView? 指定即将全屏的视图 superView UIView?...= nil ) func exitFullScreen( superView: UIView, config: FullScreenableConfig?...view上 lxf.exitFullScreen(superView: self.view) UIView func enterFullScreen( specifiedView: UIView
Objective-C: UIWindow* w = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; Swift(iOS8...): let w = UIWindow(frame: UIScreen.mainScreen().bounds) Swift(iOS9): // it’s sufficient to instantiate...Frame A view’s frame property, a CGRect, is the position of its rectangle within its superview....green:0 blue:0 alpha:1]; [mainview addSubview: v1]; [v1 addSubview: v2]; [mainview addSubview: v3]; Swift...* M_PI/180.0); v2.transform = CGAffineTransformTranslate(v2.transform, 100, 0); 效果: 例5: 旋转平移后再反转(删除旋转
1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标...,删除对应条目 (4)点击添加图标,插入一条新数据 ?...(2)长按表格进入编辑状态,所有单元格都可以进行删除操作。 (3)同时在编辑状态下,在下方会自动出现一个新增操作单元格。点击前面的加号,便会给数据集中添加一条新数据。 ?...text = "添加新数据..." } else { cell.textLabel?.text = data?...// Dispose of any resources that can be recreated. } } 下载demo:https://github.com/silencesmile/Swift_UITableView
而在Swift中,Int是一个struct(结构体),并不是个class。但是Swift中的struct与别的语言中的struct不同的是,struct内部也可以定义方法。...譬如我最近在自己的项目中给被点击的UIView(比如button)写了一个小动画,点击了之后组件会上浮一下,并且同时会有一下阴影效果。..., action: "clicked:", forControlEvents: .TouchUpInside) func clicked(sender: UIButton) { sender.superview...因为我在项目中的Button是一个自定义的贪婪Button,只要点击Button的父视图就会响应点击事件,所以是Button的superview调用了animateWhenClicked,这也是我把这个动画扩展到...UIView而不是UIButton的原因。
image.png 前言: 师弟要毕业设计,就敲了swift版的计算器给他参考下。...首先在DWCalculator工程上新建一个名为DWScreen的类文件,继承自UIView,作为计算器的显示器控件。...superview!....在DWBoard.swift添加协议代码 protocol DWBoardButtonInputDelegate { func boardButtonClick(content:String)...在DWScreen类添加如下代码: //清空显示屏当前输入的信息 func clearContent() { inputString = "" } //删除显示屏中上次输入的字符 func deleteInput
开发语言 Swift 或者 Objective-C(本教程基于 Swift 5.x)。 开发者账号 个人 99 $/年 公司 99 $/年 企业 299 $/年 iOS系统四个层次 ?...UIView iOS坐标系 二维坐标系 ? 坐标系.png z轴 获取屏幕大小 UIScreen.main.bounds UIView添加到UIViewController的View ?...UIView添加到UIViewController的View.png UIView的容器概念 UIView 中可以放其他的 UIView。 UIView 的层次关系(平级与包含)。...UIView常见方法 addSubview:添加视图到父视图。 removeFromSuperview:将视图从父视图中移除(需提前讲解触摸方法)。...经典的连线错误 UIView 连线后删除了类中的 @IBOutlet 或者 @IBAction。 UIView 连线后改变类中的 @IBOutlet 或者 @IBAction 名字。
全局函数 Global functions :无需特定类型范围就可以从任何地方访问的函数是一个古老的概念,在 C 和 Objective-C 等语言中很流行,但是在 Swift 中不建议使用,因为我们希望对它们进行很好的类型化和范围划分...也许您会像这样建立一个while循环: var currentView: UIView? = self while currentView != nil { currentView?....superview 始终相同,因此我们可以使用sequence()将其转换为简单的for循环: for view in sequence(first: self, next: { $0.superview...Swift中,作为一种创建可以跳过某些元素的循环的方法,因为从swift 语言中删除了等效的 C 样式方法: for (int i = 0; i < 10; i += 2) { ... } 现在,您可以使用...stride()实现相同的行为: for i in stride(from: 0, to: 10, by: 2) { //从0到9,跳过奇数。
Masonry框架是Objective-C版本的,如果你的项目是Swift语言的,那么就得使用SnapKit布局框架了。...SnapKit其实就是Masonry的Swift版本,两者虽然实现语言不同,但是实现思路大体一致。...使用NSLayoutConstraint添加约束 下方这段代码就是给subView添加了一个相对于superView的Top约束。...经下方的代码我们就为subView添加了一个相对于superView的Top约束,约束的偏移量是10。 ? ...从MASViewAttribute这个类名中我们就能看出,这个类是对UIView和NSLayoutAttribute的封装。
0x7fdf7048b200> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key 解决办法:删除多余的连线...NSInvalidArgumentException', reason: '-[ViewController delete2]: unrecognized selector sent to instance >解决办法:添加对应的方法或者删除多余的连线...UIView介绍 控件:界面中的所有元素 控件的共有属性:尺寸、位置、背景色等等 - 控件的共有属性封装在其父类——UIView中 UIView常见属性 superView:查看父控件 NSLog(@..."%@",self.greenView.superview); subView:查看子控件 NSLog(@"%@",self.greenView.subviews); 查看View中控件的数量 NSLog...); } ---- UIView的常见方法 addsubView :添加一个子控件 //实例化一个switch UISwitch *sw1 = [[UISwitch alloc] init]; //在yellowView
相信很多同学都知道在iOS7之后调整导航栏两侧按钮距离左右间距,其实就是在左右barButtonItem的数组中添加一个宽度为负的占位item。...2 在customView的layoutSubviews方法中找到UINavigationBarContentView,添加customView和UINavigationBarContentView之间的约束...rightItemCustomView]; self.navigationItem.rightBarButtonItem = rightItem; } 但是这个方法会有约束冲突问题,所以我们把产生冲突的约束删除...LFBarButtonItemViewTypeLeft) { CGFloat margin = kAppAdaptHeight(15); //删除原来的...removeConstraint:constraint]; } } //添加新约束
代码: // // PanView.swift // // // Created by ZY on 2018/5/23. // Copyright © 2018年 zy..... // import UIKit enum slideStates { case top case bottom } class PanView: UIView {...extension PanView { func countY(){ upPointY = maxtop //最高值 middleY = Double(((self.superview...objc func panHandle(pan:UIPanGestureRecognizer){ let translation = pan.translation(in: self.superview...upPointY }else{ currentY = bottionY } UIView.animate
使用这些方法比删除subview并重新插入它们要快。 要从其superview移除subview,请调用subview的removeFromSuperview方法(而不是superview)。...将subview添加到另一个View时,UIKit会通知superview和subview。...因此,隐藏view通常是从view层次结构中删除view的一种方便的替代方法,特别是如果您计划在不久的将来再次显示view时。...除了UIView转换方法之外,UIWindow类还定义了几种转换方法。 这些方法类似于UIView版本,除了不是从view的局部坐标系转换而是从window的坐标系转换而来。...添加或删除subview或核心动画layer。 通过调用setNeedsDisplay或setNeedsDisplayInRect:方法强制subview重绘。
SXBarViewPosition) { SXBarViewPositionLeft, SXBarViewPositionRight }; @interface BarView : UIView...]; if (self.applied || [[[UIDevice currentDevice] systemVersion] floatValue] < 11) return; UIView...[view isKindOfClass:UINavigationBar.class] && view.superview) { view = [view superview];...self.applied = YES; } break; } } } @end 3、自定义view添加到...alloc] init]]; 坑 按钮需要在viewWillAppear中进行添加按钮 - (void)viewWillAppear:(BOOL)animated { } 未知情况,在viewDidLoad
简介 iOS在写视图的有的人喜欢纯代码去写,从之前的绝对定位方式(Frame),到现在的自动布局(Autolayout),但这种方式的好处是便于复制修改和装X,但是缺点是代码不容易看,不便于修改 也有人喜欢所见即所得...margin的,也就是默认”Constrain to margin“是勾选的,这会导致约束值出现类似于Superview.Leading Margin这种的约束。...,当然能最大限度的使用xib可自定义的属性当然是极好的,下面就说一下一些不常用的从xib中可设置的属性 这些属性的设置在右面设置菜单的第三个选项卡的User Defined Runtime Attributes...添加扩展 或 继承 添加IBInspectable的属性 既可以图形化设置某些属性 这样在右侧的第四个选项卡中神奇的出现了自定义的设置项 OC下的实现方式(扩展) UIView+Border&CornerRadius.h...下的实现方式(扩展) UIView+Border&CornerRadius.swift import Foundation import UIKit extension UIView {
Entry Point 对象, 选中该对象, 按下 Delete 键, 可删除该箭头; 箭头删除后 : 6.箭头控制 - 属性设置 : 如果将箭头删除, 此时的处理方法是, 选中界面的初始化...获取按钮的父控件 UIView * superView = sender.superview; //2....修改父控件颜色 superView.backgroundColor = randomColor; } ---- ( 5 ) 使用代码生成 UIView 对象 代码生成 View 控件 : 1.添加按钮...获取按钮的父控件 UIView * superView = sender.superview; //2....获取按钮的父控件 UIView * superView = sender.superview; //2.
从排序数组中删除重复项 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。 不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。...(Swift中已经废弃了++运算符,所以在使用 size += 1 代替。...当前Leetcode语言环境Swift 4.0) class Solution { func removeDuplicates(_ nums: inout [Int]) -> Int {...开始用Swift学习算法中,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记吧。
; }; UIView *uploadView = [UIView new]; [self.view addSubview:uploadView]; [uploadView...历史 基本功能如下 加载iCloud数据 删除记录 分享 这里使用了MVVM+RAC ViewModel 创建两个command, 获取数据,及删除数据 @interface MMHistoryViewModel...}]; } return _getMainData; } - (void)processListData:(NSDictionary *)dataModel { //从iCloud...}] ; }]; } return _deleteCommand; } - (void)deleteData:(NSDictionary*)data { //从iCloud...UIButton *deleteBtn = [UIButton buttonWithType:UIButtonTypeSystem]; [deleteBtn setTitle:@"删除记录
下面主要通过学习UIView.h文件来了解UIView主要提供了那些方法和属性,从UIView.h的源码来看,UIView.h的结构主要分为4个部分: 常用枚举类型的定义,主要包括 视图动画曲线 UIViewAnimationCurve...) ,主要提供两个类方法进行关键帧动画的设定,也是直接采用block的方式实现 视图上手势相关的扩展 UIView (UIViewGestureRecognizers) ,主要提供添加、移除和手势开始前回调...3个方法 视图上运动效果相关的扩展 UIView (UIViewMotionEffects),主要提供添加和移除运动效果两个方法,还提供一个获取视图上所有运动效果的属性 视图上安装约束相关的扩展 UIView...< 自动调整与superView底部的距离,也就是说,与superView顶部的距离不变. 57 }; 58 59 /** UIView动画选项 */ 60 typedef NS_OPTIONS...< 系统删除动画 110 } NS_ENUM_AVAILABLE_IOS(7_0); 111 112 typedef NS_ENUM(NSInteger, UIViewTintAdjustmentMode
领取专属 10元无门槛券
手把手带您无忧上云