- 博客(57)
- 收藏
- 关注
原创 iOS - 给WKWebView添加头、尾视图
#import "ViewController.h"#import <WebKit/WebKit.h>@interface ViewController ()/// web@property (nonatomic, strong) WKWebView *webView;/// view@property (nonatomic, strong) UIView *bottomView;@end@implementation ViewController- (void).
2021-04-15 17:58:18
795
原创 iOS - 暗黑模式图片、颜色的适配
1、图片的适配以一张图片,图片名字为1为例拖进工程后,选中该图片,展开右侧边栏,把appearances属性展开,选中Any,Dark把对应图片拖进去,适配完成2、颜色的适配// MARK: - 颜色的适配,可以封装成工具类或者宏- (UIColor *)obtainCurrentBGColor { if (@available(iOS 13, *)) { UIColor *currentColor = [UIColor colorWithDyna
2021-03-20 15:53:43
676
原创 iOS - 循环滚动公告栏的实现
封装了一个继承于UIView的类,如下:#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface XtayNoticeScrollView : UIView- (instancetype)initWithFrame:(CGRect)frame titleArray:(NSArray<NSString *> *)titleArray;- (void)openTimer; - (void)cl
2021-03-18 17:49:41
1783
原创 iOS - UTC日期和本地时间互转
// MARK: - 将本地时间转换为UTC时间- (NSString *)obtainUTCDateStringWithLocalDateString:(NSString *)localTimeString { NSDateFormatter *format = [[NSDateFormatter alloc] init]; format.dateFormat = @"yyyy-MM-dd HH:mm:ss"; format.timeZone = [NSTimeZone loc.
2021-03-16 16:15:07
1489
转载 Mac - 加密压缩文件(免费)
1、打开终端2、键入 cd desktop 让终端控制桌面3、键入zip -er 【压缩后文件名】.zip 【源文件(含后缀名)】命令4、执行压缩命令,输入加密密码,确认加密密码5桌面出现压缩后的文件6、完成...
2021-01-21 13:28:12
334
原创 iOS - 用代码批量改变文件夹中文件的名字
NSString *path = @"/Users/zhangjinjiang/Desktop/ios"; NSFileManager *fileManager = [NSFileManager defaultManager]; // 创建一个新的文件夹路径 [fileManager createDirectoryAtPath:@"/Users/zhangjinjiang/Desktop/ios111" attributes:nil]; if ([fileManager f.
2021-01-04 22:42:53
634
原创 iOS - iOS 12 之后的归档(NSKeyedArchiver)、解档(NSKeyedUnarchiver)用法
一、iOS 12之后旧的归档解档方法废弃了,更改为:归档:+ (nullable NSData *)archivedDataWithRootObject:(id)object requiringSecureCoding:(BOOL)requiresSecureCoding error:(NSError **)error解档:+ (nullable id)unarchivedObjectOfClasses:(NSSet<Class> *)classes fromData:(N.
2020-12-16 17:46:49
2884
原创 iOS - 检测是否被抓包
- (BOOL)checkProxySetting { NSDictionary *proxySettings = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings()); NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:@"https:/.
2020-12-12 11:25:20
702
原创 MBProgressHUD的小封装
就是XtayMBHudView 这个类:#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface XtayMBHudView : UIView/// 单例+ (instancetype)sharedSingleInstance;- (void)creatTextHudAlertViewWithSuperView:(UIView *)superView title:(NSString *)title detailT..
2020-09-15 14:50:46
343
原创 iOS - UIBezierPath 实现饼状图
首先看效果图:#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface CircleView : UIView@property (nonatomic, copy) NSArray<NSNumber *> *valueArray;@endNS_ASSUME_NONNULL_END//...
2019-03-27 14:43:00
404
原创 iOS - 判断类的几种形式
1.创建类@interface Father : NSObject@end@interface Son : Father@end2.设置全局变量@interface ViewController () { Son *_s; Father *_f;} _f = [Father new]; _s = [Son new];下面开始判...
2019-01-14 18:15:42
1001
原创 iOS - 自定义结构体
我一直在模仿,还未曾超越大神们......新建一个类,导入#import <UIKit/UIKit.h>框架,创建结构体:#import <UIKit/UIKit.h>typedef struct { int totalCount; int bestCount;}ZJJFriends;typedef struct { int...
2019-01-03 15:47:09
835
原创 iOS - 找出汉字拼音首字母
#import <Foundation/Foundation.h>@interface NSString (PinyinInitials)/**获取汉字拼音的首字母, 返回的字母是大写形式, 例如: @"俺妹", 返回 @"A".*如果字符串开头不是汉字, 而是字母, 则直接返回该字母, 例如: @"b彩票", 返回 @"B".*如果字符串开头不是...
2018-08-29 13:42:29
2753
原创 iOS - 富文本指定文字点击实现(仿超链接)
#import "ViewController.h"@interface ViewController () <UITextViewDelegate>@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loa...
2018-07-05 18:40:48
9499
原创 iOS - 网址超链接
代码如下,直接跳转:- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSString *str1 = @"我是一只丑小鸭"; NSString *str2 = @"http://www...
2018-07-05 11:38:13
366
原创 iOS - 常用通用宏定义
#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height// iPhone 机型(尺寸大小)判断#define IPHONE_SE
2018-01-08 11:07:25
410
原创 iOS - 自定义NSLog
在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以重写NSLog输出来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式。这样,发布的App就不会在程序内部做大量的NSLog输出了。
2017-06-02 11:45:16
461
原创 iOS - Socket-长连接(心跳包)的实现
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
2017-04-25 13:28:05
7483
转载 iOS - 极光单一用户(特定用户)推送的代码
#pragma mark - 给单一用户进行推送的设置- (void)jPushSingalUserSetWithUser:(NSString *)user_id { NSMutableSet *tags = [NSMutableSetset]; //别名,根据用户的UID去设置别名,那么可以指定的推送给某些用户 NSString *alia
2017-04-13 15:34:57
1082
原创 iOS - UICollectionView 简单拖动 cell 实现
#define CELL_WIDTH (self.view.frame.size.width-30)/2#define CELL_HEIGHT 100#import "ViewController.h"@interface ViewController ()UICollectionViewDataSource,UICollectionVi
2017-04-01 09:36:18
791
原创 iOS - 通知监听键盘高度
#define SINGLE_NOTICE [NSNotificationCenter defaultCenter]#import "ViewController.h"@interface ViewController ()UITextFieldDelegate> { float _keyboardHeight; // 键盘高度
2017-02-27 15:14:06
402
转载 iOS - 多线程中 condition wait
使用NSCondition,实现多线程同步。。。举个列子 消费者跟生产者。。。现在传言8s要出了。。消费者想买8s。现在还没有8s。消费者等待8s生产。生产了一个产品,唤起消费者去买8s。解锁.。。一般在多线程编程中都会用到condition_wait,“条件变量与互斥量一起使用从可以允许线程以无竞争的方式等待特定的条件发生。为什么必须一起使用呢?1)假如当某个资源满足了一定的
2017-02-23 15:39:44
1111
原创 iOS - UDP Socket 的使用
Socket 通信中,TCP/UDP,接着UDP的方法:- (void)initSendSocket{ if (!_sendTextUdpSocket) { _sendTextUdpSocket = [[GCDAsyncUdpSocketalloc] initWithDelegate:selfdelegateQueue:dispatc
2017-02-21 14:25:47
1361
原创 iOS - 简单判断APP账号登录过期的方法
NSDate *date; date = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"date"]; if (date) { NSLog(@"存在");
2017-02-06 10:28:45
2082
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人