背景 由于将重构任务和业务任务代码修改提交在了一个分支,为了不影响业务正常,必须删除重构提交。...问题 比如我的提交历史如下,我现在想删除重构commitB、C,但不影响B、C后的业务提交D D(业务提交) C(重构提交) B(重构提交) A(本地初始拉的远程分支) 解决方案 首先找到BC提交之前的一次提交的...将BC两行前面的pick改为drop,然后保存退出 至此已经删除了指定的commit。 git push –force 然后推送到远程仓库 此时BC 就被干掉了,没有影响后面的提交
首先我们来从字面意思来理解一下Target-Action回调模式,Target目标即我们要调用哪个目标对象中的方法。Action是行为的意思,就是我们要调用目标对象中的哪一个方法。...委托回调模式之前在Java中接触过,而Target-Action回调模式笔者是第一次接触,可能是笔者道行太浅,感觉这是OC中对回调的新用法,感觉还行,不难理解。 ...2.属性action用于接收目标对象的方法,也就是要在目标对象中要回调的方法 3.addTarget: Action:方法用于注册目标动作,说白了目标对象和目标对象的方法是通过这个方法传入到组件中的...{ NSLog(@"我是Controler中的componenTwoFunction方法,我的参数%@是从组件二中回调时获取的", strValue); } @end ...Controler中的componentOneFunction方法,我是在组件一中回调使用的 2014-08-18 08:33:23.902 Test2[544:303] 我是Controler中的componenTwoFunction
大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。...假设要注冊一个事件,能够使用addTarget方 法: [ myControl addTarget: myDelegate action:@selector(myActionmethod:) forControlEvents...要删除一个或多个事件的对应动作,能够使用UIControl类的removeTarget方法。...使用nil值就能够将给定事件目标的全部动作删除: [ myControl removeTarget:myDelegate action:nil forControlEvents:UIControlEventAllEvents...比如,假设你的控件值正在发生变化,就能够 发送对应通知,通过控件的代码能够指定时间目标,这个通知将被传播到这些指定的目标。
这个Button继承于UIView类,在封装的时候用上啦OC中的三种回调模式:目标动作回调,委托回调,Block回调。...具体的内容请参考之前的博客:“Objective-C中的Block回调模式”,“Target-Action回调模式”,“Objective-C中的委托(代理)模式”。...之前在做新浪微博中的Cell的时候用到了Block回调来确定是那个Cell上的那个Button。 ...1.在MyButton.h中声明目标动作注册方法: //TargetAction回调 -(void)addTarget:target action:(SEL)action; 2.在MyButton.m...13 -(void)addTarget:(id)target action:(SEL)action 14 { 15 self.target = target; 16 self.action
NSString stringWithFormat:@"%d",i] forState:UIControlStateNormal]; btn.tag=101+i; [btn addTarget...selector(change) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:change]; //创建删除按钮...delete" forState:UIControlStateNormal]; [delete setBackgroundColor:[UIColor redColor]]; [delete addTarget...selector(delete) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:delete]; } //删除方法...btn{ [self.textDocumentProxy insertText:[NSString stringWithFormat:@"%ld",btn.tag-101]]; } 运行后,在使用之前
//字符串清零 } else { //输出上次计算结果 if ([self.str isEqualToString:@"+"])//之前的符号是...setString:@""];//字符串清零 } } else if ([self.str isEqualToString:@"-"])//之前的符号是...setString:@""];//字符串清零 } } else if([self.str hasPrefix:@"*"])//之前的符号是...//字符串清零 } } else if ([self.str isEqualToString:@"/"])//之前的符号是...{ [self.string deleteCharactersInRange:NSMakeRange ([self.string length]-1,1)];//删除最后一个字符
的输出,并且设置videoOutput和audioOutput的输出delegate; 3、_captureSession调用startRunning,开始捕获信号; 4、音频数据到达,把数据转发给之前设置的...alloc] initWithFrame:self.view.frame]; self.view = _filterView; // 响应链 [_videoCamera addTarget...:_filter]; [_filter addTarget:_filterView]; [_videoCamera startCameraCapture]; 开始录制 unlink...([pathToMovie UTF8String]); // 如果已经存在文件,AVAssetWriter会有异常,删除旧文件 _movieWriter = [[GPUImageMovieWriter...movieURL size:CGSizeMake(480.0, 640.0)]; _movieWriter.encodingLiveVideo = YES; [_filter addTarget
(target)和目标方法(action)存到了自己私有的字典里。...当用户点击按钮时,UIControl响应了触摸链的touchesEnded方法,便会根据私有字典,把对应UIControlEventTouchUpInside的目标(target)和目标方法(action...UIApplication(在它的sendAction:to:fromSender:forEvent:方法中)来实现这个方法来派发给它的目标, 或者如果它没有确定的目标,派发给响应链中第一个愿意处理这个消息的对象中...`addTarget:action:forControlEvents:`.之前构造。...在内部的派发表中给特殊时间添加一个目标和动作 addTarget:action:forControlEvents: - (void)addTarget:(id)`target` action
只需要在跳转的目标 UIViewController 做如下处理: if let presentationController = presentationController as?...locationButton.tintColor = UIColor.systemPink // 背景色 locationButton.backgroundColor = UIColor.systemGreen // 点击事件,应该在在其中发起定位请求...locationButton.addTarget(self, action: #selector(getCurrentLocation), for: .touchUpInside) 4.
先说需求:在tableView中每一行有一个删除按钮,点击删除当前行。...(很多项目都会用到吧) 写一段废话:写例子的时候一直想找一个大家常用的功能做,但当这个例子写完我又犹豫要不要传上来,原因是对于这个功能,其实有其他更好的方法解决,其中我代码中的(方法一)就是其中一个不错的解决方案...可是如果你细心会发现,runtime有个很大的好处就是你不需要再费劲找目标对象了。只需要 1 绑定。2 取出。用法简单又霸道......cell.titleLabel.text = [NSString stringWithFormat:@"新闻标题%@",@(indexPath.row+1)]; [cell.deleteButton addTarget...//我这里要传进来一个indexPath的对象,所以用了COPY。具体他们之间的区别以及用法,直接复制找百度大神吧。 iOS技术交流群:511860085 成堆的技术视频福利,欢迎加入!
@end 时间线视图 这里用runtime方法为uibutton分类给时间线上的btn添加了两个属性 keyWithBtn :用于存储日期 panelBtnType :用于存储按钮是修改还是删除...]; self.panelView.userInteractionEnabled = YES; [self addSubview:self.panelView]; //左按钮 删除...(void)viewDidLoad { [super viewDidLoad]; NSLog(@"%@",NSHomeDirectory()); self.title = @"我的账本...UIAlertController *alertVC =[UIAlertController alertControllerWithTitle:@"提示" message:@"确认删除...nonatomic) NSManagedObjectContext *managedObjectContext; //单例 + (instancetype)sharedInstance; //从数据库中删除
forState:UIControlStateHighlighted]; //将按钮添加到view [self.view addSubview:button]; /* 监听按钮的点击 * Target: 目标...(让谁做事情) * action: 方法 (做什么事情-->方法) * Events: 事件 */ [button addTarget:self action:@selector(demo) forControlEvents...:UIControlEventTouchDragInside]; } - (void)demo{ NSLog(@"%s",__func__); } ---- 综合案例(购物车添加&删除商品) 全局属性...nonatomic) IBOutlet UIView *shopCarView; //添加按钮 @property (weak, nonatomic) IBOutlet UIButton *addButton; //删除按钮...= 5); //添加一个商品,就可以删除一个商品,此时要改变删除按钮的状态 self.removeButton.enabled = YES; 移除按钮的点击事件 //移除最后一个商品 UIView
builder可以设置多个target,如果需要拿到实时的预览数据,则把imageReader 的surface 也设进去 // mPreviewRequestBuilder.addTarget...mMediaRecorder.getSurface(); surfaces.add(recorderSurface); mPreviewBuilder.addTarget...那么接下来就是怎么怎么把Camera数据显示到UI上,这时就用到Surface了,我们可以这样理解,Surface是图像显示的介质,Camera2 API 允许我们设置多个Surface为输出目标...,比如上面我们说的ImageReader、SurfaceTexutre、MediaRecorder相关的Surface都可以设为目标Surface,底层会帮我们进行数据的填充和显示。...=========================================================== 想联系我的,关注我的个人公众号(小驰笔记)吧,公众号会记录自己开发的点滴,还有日常的生活
如果需要显示成滚轮模式,需要手动设置: datePicker.preferredDatePickerStyle = .wheels 注意:需要在 frame 之前设置。...{ return "删除" } // 编辑的风格(默认是删除) func tableView(_ tableView: UITableView, editingStyleForRowAt...[sourceIndexPath.row] // 先删除 content?....header.pinToVisibleBounds = true // 设置Section的头尾 section.boundarySupplementaryItems = [header, footer] 附加视图使用之前需要注册...subView.backgroundColor = .red // 4.UIControl可以添加事件 ... // 5.添加到父View view.addSubview(subView) 添加事件 iOS 14 之前使用
大家好,又见面了,我是你们的朋友全栈君。...3、Button的addTarget:action:forControlEvents方法的forControlEvents的参数有UIControlEventTouchUpInside、UIControlEventTouchDown...UIControlEventTouchDown表示@selector(clicka:withEvent:)方法在Button的touchesBegan:withEvent:方法之后以及touchesMoved:withEvent:方法之前调用...如果把ButtonVC的viewDidLoad()里面的[button addTarget:self action:@selector(clicka:withEvent:) forControlEvents...:UIControlEventTouchDown];改为[button addTarget:self action:@selector(clicka:withEvent:) forControlEvents
builder可以设置多个target,如果需要拿到实时的预览数据,则把imageReader 的surface 也设进去 // mPreviewRequestBuilder.addTarget...mMediaRecorder.getSurface(); surfaces.add(recorderSurface); mPreviewBuilder.addTarget...了; 那么接下来就是怎么怎么把Camera数据显示到UI上,这时就用到Surface了,我们可以这样理解,Surface是图像显示的介质,Camera2 API 允许我们设置多个Surface为输出目标...,比如上面我们说的ImageReader、SurfaceTexutre、MediaRecorder相关的Surface都可以设为目标Surface,底层会帮我们进行数据的填充和显示。...---- 本人从事Android Camera相关开发已有5年 目前在深圳上班 欢迎大家关注我的微信公众号“小驰笔记” 大家一起学习交流
拍照之前我一直在预览中,如果在用户点击拍照的瞬间,我将指令传递下去,之前预览的那一帧作为拍照的帧来处理,这样的耗时几乎为0,大大降低了拍照的耗时。...mSurfaceTexture.setDefaultBufferSize(mPreviewWidth, mPreviewHeight); Surface surface = new Surface(mSurfaceTexture); mPreviewBuilder.addTarget...(); Surface previewSurface = mPreviewSurface; mCaptureVideoRequestBuilder.addTarget...= null) { mCaptureVideoRequestBuilder.addTarget(recordSurface); outputSurfaces.add...正常情况下,Surface用来Camera预览 如果点击拍照,将之前的预览帧保存为图片 如果点击录制,将Surface的视频帧编码放入Video Packet Queue中,等着封装和时候和Audio
限制了最大最小时间之后,此控件就可以自己会滚到设定的时间,不会在日期之前停留。...2.UIPickVIew 几个重要的方法 设置一个监听,用来监听pickVie的值的变化 [startPicker addTarget:self action:@selector(startPick...下边附上我写的demo的主要代码: // // ViewController.m // demoUIDatePicker // // Created by taoli on 2017/7/20....startPicker.minimumDate = minDate; startPicker.backgroundColor = [UIColor yellowColor]; [startPicker addTarget
IOS官方并没有提供类似于侧滑栏之类的组件,所以我们需要自己写一个侧滑栏控件,为了不要重复造轮子,我在github上找到了一个使用简单方便,新手容易入手的侧滑菜单控件,Demo下载地址:这是一个我的iOS...Demo界面演示如下: 推荐一个我iOS高级交流群:624212887,群文件自行下载,不管你是小白还是大牛热烈欢迎进群 ,分享面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。...self.view addGestureRecognizer:revealController.panGestureRecognizer]; // 注册该页面可以执行点击切换 [leftBtn addTarget...revealController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside]; [rightBtn addTarget...你的支持是我继续的动力。 下篇文章预告:iOS动画的总结 文章来源于网络,如有侵权,请联系小编删除。
, &AssociateKeys.key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) } } } // 进行关联后,在对这个目标对象访问的时候...objc_setAssociatedObject(self, &AssociateKeys.key, action, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) addTarget...@objc private func itemClick(button: UIButton){ // 点击按钮,通过objc_getAssociatedObject获取之前保存的闭包并调用...objc_setAssociatedObject(btn, &AssociateKeys.key, params[i], .OBJC_ASSOCIATION_COPY) btn.addTarget
领取专属 10元无门槛券
手把手带您无忧上云