知识点小记

本文介绍了iOS开发中的一些实用技巧,包括使用RAC响应式编程监控UI元素的变化、通过NSNotificationCenter进行跨视图通信、实现渐变背景效果以及如何在Xcode中同时运行多个模拟器进行调试。

<#object#> 可以让object进入预选状态

调用set/get方法一定要用self.不要用_ 这几天吃了好多亏

打包的时候要记着把DEBUG改为release

[[NSNotificationCenter defaultCenter] postNotificationName:@"PushToTuCaoWebView" object:nil];使用通知在object类进行铺设跳转

RAC学习:

1.使用RAC监控textFiled文本输入,包括点击

[[filed rac_textSignal] subscribeNext:^(id x) {

NSLog(@"=========%@",x);

}];

2.监听一个继承View视图控件的手势动作

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];

[[tap rac_gestureSignal] subscribeNext:^(id x) {

NSLog(@"tap");

}];

[self.view addGestureRecognizer:tap];

3.通知

发送通知和数据:NSMutableArray *dataArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];

[[NSNotificationCenter defaultCenter] postNotificationName:@"postData" object:dataArray];

接收数据:[[[NSNotificationCenter defaultCenter] rac_addObserverForName:@"postData" object:nil] subscribeNext:^(NSNotification *notification) {

NSLog(@"%@", notification.object);    //object即为数组的参数

}];

4.KVO监听scrollView的滚动

RACObserve(TARGET, KEYPATH)中TARGET是监听目标,KEYPATH是要观察的属性值


每当scrolView的contentOffset发生变化时,就会被监听到

//=====================================================

当项目里面TabBar嵌套Nav时,进行Push的时候隐藏TabBar的问题。hidesBottomBarWhenPushed这个方法。如果为YES,当这个控制器push的时候,底部的Bar,比如Tabbar会滑走,也就是不会在push后的视图上显示出来,默认值为NO。

做一个渐变色的背景(uicolor的拓展类)

+ (CAGradientLayer *)setGradualChangingColor:(UIView *)view fromColor:(NSString *)fromHexColorStr toColor:(NSString *)toHexColorStr{

//    CAGradientLayer类对其绘制渐变背景颜色、填充层的形状(包括圆角)

CAGradientLayer *gradientLayer = [CAGradientLayer layer];

gradientLayer.frame = view.bounds;

//  创建渐变色数组,需要转换为CGColor颜色

gradientLayer.colors = @[(__bridge id)[UIColor colorWithHexString:fromHexColorStr].CGColor,(__bridge id)[UIColor colorWithHexString:toHexColorStr].CGColor];

//  设置渐变颜色方向,左上点为(0,0), 右下点为(1,1)

gradientLayer.startPoint = CGPointMake(0, 0);

gradientLayer.endPoint = CGPointMake(1, 1);

//  设置颜色变化点,取值范围 0.0~1.0

gradientLayer.locations = @[@0,@1];

return gradientLayer;

}

在VC里调用下:

UIView *sysView = [UIView new];

[sysView setFrame:CGRectMake(60, 60, 100, 40)];

sysView.layer.cornerRadius = 20.0;

sysView.layer.masksToBounds = YES;

[sysView.layer addSublayer:[UIColor setGradualChangingColor:sysView fromColor:@"F76B1C" toColor:@"FBDA61"]];

[self.view addSubview:sysView];


二。。。Xcode同时打开两个Simulator模拟器(做通信APP方便调试)

方法一:打开终端进到xcode路径下的Applications路径

$:cd /Applications/Xcode.app/Contents/Developer/Applications/

打开模拟器

$:open -n Simulator.app/

方法二:或者执行一个脚本也可以,创建文件xim.sh,键入以下代码

1.#!/bin/sh

2.cd /Applications/Xcode.app/Contents/Developer/Applications/

3.open -n Simulator.app/

4.sudo sh sim.sh


三,[父控件.viewlayoutIfNeeded];的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值