- GitHub 地址:Wonderful
- star: 700+
⭐️⭐️⭐️
以下内容来源于官方源码、 README 文档、测试 Demo 或个人使用总结 !
Wonderful
一个关于色彩的库
// 支付倒计时
- (void)secondsCountDown:(UILabel *)label {
__block int timeout = 900;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0*NSEC_PER_SEC, 0);//每秒执行
dispatch_source_set_event_handler(_timer, ^{
if (timeout<=0) {
dispatch_source_cancel(_timer);
dispatch_async(dispatch_get_main_queue(), ^{
// 隐藏密码输入界面,禁用支付按钮
[MBProgressHUD showMessage:@"付款超时,请返回重新选择座位"];
});
}else {
int minutes = timeout/60;
int seconds = timeout%60;
NSString *strTime = [NSString stringWithFormat:@"%d 分 %d 秒", minutes, seconds];
dispatch_async(dispatch_get_main_queue(), ^{
label.text = [NSString stringWithFormat:@"请在 %@ 内完成付款,晚了座位就没有了哦",strTime];
});
timeout--;
}
});
dispatch_resume(_timer);
}
//initWithString
NSMutableString *ms2 = [[NSMutableString alloc] initWithString:@"abcdefg"];
//stringWithFormat:父类类方法创建
NSMutableString *ms3 = [NSMutableString stringWithFormat:@"abcdefg" ];
[ms3 insertString:@"插入字符" atIndex:1]; //@"a插入字符bcdefg"
[ms3 appendString:@"对象"]; //@"abcdefg对象"
NSRange rg = NSMakeRange(3,4);
NSRange rg = [ms3 rangeOfString:@"字符"]; //同上,原@“a插入字符bcdefg”
[ms3 deleteCharactersInRange:rg]; //@“a插入bcdefg”
NSRange rg3 = [ms3 rangeOfString:@"字符"];
[ms3 replaceCharactersInRange:rg3 withString:@"字母"]; //字符——>字母
iOS 实录 12:NSMutableArray 使用中忽视的问题
NSMutableArray 是可变数组,数组中存储空间是可以动态修改,可以添加、删除或对指针重新进行排序。
NSMutableArray 继承于 NSArray, NSArray 的方法都可以使用,。
Person *p1 = [[Person alloc] init];
Person *p2 = [[Person alloc] init];
Person *p3 = [[Person alloc] init];
//1.初始化时添加元素
NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithObjects:p1,p2,p3, nil];
//2.创建空数组,再往里面添加
NSMutableArray *mArray2 = [[NSMutableArray alloc] init];
// 类方法
NSMutableArray *mArray21 = [NSMutableArray array];
//3.创建数组时,同时为数组分配3个存储空间,当3个空间全满之后,会自动扩展空间。
NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithCapacity:3];
#import "ViewController.h"
// 导入加密功能的头文件
#import <CommonCrypto/CommonDigest.h>
/**
演示系统自带的md5加密功能。
*/
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 定义一个字符串对象
NSString *str = @"Hello Apple!";
// 将字符串对象转换为C语言字符
const char *representation = [str UTF8String];
// 创建一个标准长度的字符串
unsigned char md5[CC_MD5_DIGEST_LENGTH];
// 对C语言字符串进行加密,并将结果存入变量
CC_MD5(representation, strlen(representation), md5);
// 创建一个可变的字符串变量
NSMutableString *mutableStr = [NSMutableString string];
for (int i = 0; i < 16; i++) {
// 通过遍历该变量,将加密后的结果,存入可变字符串
[mutableStr appendFormat:@"%02X",md5[i]];
}
NSLog(@"%@",mutableStr);
}
UIImagePickerController 类用于管理可定制的,基于系统支持的用户界面,用于在支持的设备上拍摄照片和电影,并且在你的 app 中为用户保存照片和电影。 图像选择器控制器管理用户交互并将这些交互的结果传递给委托对象。
需要导入包:import <MobileCoreServices/MobileCoreServices.h>
;
拍摄视频需要导入包:#import <AssetsLibrary/AssetsLibrary.h>
需要遵循的协议:<UINavigationControllerDelegate,UIImagePickerControllerDelegate>
;
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
在根视图里添加两个子视图;
CGRect rect1 = CGRectMake(30, 50, 200, 200);
UIView *view1 = [[UIView alloc] initWithFrame:rect1];
[view1 setBackgroundColor:[UIColor brownColor]];
CGRect rect2 = CGRectMake(60, 90, 200, 200);
UIView *view2 = [[UIView alloc] initWithFrame:rect2];
[view2 setBackgroundColor:[UIColor purpleColor]];
[view2 setAlpha:0.5];
[self.view addSubview:view1];
[self.view addSubview:view2];