Objective-C
Mackellen
对代码有一种执着的热爱!
展开
-
iOS 给大段文字添加行间距 以及根据行间距计算Label的高度
//给字符串添加行间距- (NSAttributedString *)setLabelParagraphStyle:(NSString *)str lineSpaceSize:(CGFloat)spaceSize{ NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWith...原创 2020-04-07 10:08:02 · 459 阅读 · 0 评论 -
iOS 获取当前ViewController所在堆栈信息
+ (UIViewController *)findCurrentViewController{ UIWindow *window = [[UIApplication sharedApplication].delegate window]; UIViewController *topViewController = [window rootViewController]; ...原创 2020-04-07 09:47:46 · 1240 阅读 · 0 评论 -
iOS 计算某个时间点距离今天有多少天
+ (NSInteger)distanceTodayDayCount:(NSString *)inputDate{ NSDate *nowDate = [NSDate date]; // 当前时间 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateForm...原创 2020-04-07 09:41:14 · 1084 阅读 · 0 评论 -
iOS 字符串和数组相互转换
//数组转换成字符串NSString *picString = [array componentsJoinedByString:@","];//字符串转换成数组NSArray *images = [arraycomponentsSeparatedByString:@","];原创 2020-04-07 09:34:42 · 1228 阅读 · 0 评论 -
ios 根据items数动态计算Cell高度
- (void)setDataSource:(NSArray *)array{ if ([array isKindOfClass:[NSArray class]] && array.count > 0) { NSInteger totalCount= array.count; NSInteger row = ceilf(totalC...原创 2020-01-14 16:21:23 · 292 阅读 · 0 评论 -
iOS设置文本行高并获取文本高度
//设置文本行高- (NSAttributedString *)setAttrbuteString:(NSString *)text{ NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text]; NSMutableParagraphS...原创 2018-09-17 18:05:00 · 1904 阅读 · 0 评论 -
Xib嵌套另外一个Xib适配处理方法
有时候我们创建一个Cell或者View,在使用Xib创建时,可能会引入另外一个Xib文件,这时需要设置autoresizingMask 属性值,对页面整体进行适配。_footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 属性值具体解释如下: UIViewAutoresizingNone 不...原创 2018-09-17 17:54:29 · 615 阅读 · 0 评论 -
ios 做不倒翁动画效果
#pragma mark - 矫正不倒翁位置- (void)setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{ CGRect oldFrame = view.frame; view.layer.anchorPoint = anchorpoint; view.frame = oldFrame;}-...原创 2016-07-04 15:33:31 · 702 阅读 · 0 评论 -
UITableview顶部视图缩放效果
- (void)viewDidLoad // 创建tableView header view UIView *headerBackView = [UIView alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 180)]; _tableView.tableHeaderView = headerBackView;原创 2016-06-28 14:24:45 · 607 阅读 · 0 评论 -
ios UILabel 添加删除线或者下滑线
//添加删除线UILabel *strLabel = [[UILabel alloc] initWithFrame:(CGRectMake(10, 10, 120, 30))];NSString *textStr = [NSString stringWithFormat:@"从现在开始"];NSDictionary *attribtDic = @{NSStrikethroughStyl...原创 2016-06-01 15:13:05 · 475 阅读 · 0 评论 -
UIButton 文字换行显示
self.customBtn.titleLabel.numberOfLines = 0;self.customBtn.titleLabel.lineBreakMode = NSLineBreakByCharWrapping;[self.customBtn setTitle:@"特别支持" forState:UIControlStateNormal];[self.customBtn s...原创 2018-09-18 09:43:33 · 1077 阅读 · 0 评论 -
iOS Animation动画效果
CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"strokeEnd"];animation.duration = 1;animation.values = @[@(0), @(1),@(0.75)];animation.keyTimes = @[@(0), @(0.6)...原创 2018-09-18 09:44:45 · 498 阅读 · 0 评论 -
iOS UIBezierPath 绘制图形方法
#pragma mark - 绘制圆弧方法- (void)drawInner:(CGRect)rect{ UIColor *color = [UIColor colorWithRed:224/255.0f green:224/255.0f blue:224/255.0f alpha:1.0f]; [color set]; //设置颜色 U...原创 2018-09-18 09:47:03 · 186 阅读 · 0 评论 -
iOS 常用的就是日期的方法
// 根据两个时间点,定义NSDateComponents对象,从而获取这两个时间点的时差NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];NSDateComponents *dateComponents = [calender components:...原创 2018-09-18 09:49:17 · 156 阅读 · 0 评论 -
UIButton 文字换行显示
self.customBtn.titleLabel.numberOfLines = 0;self.customBtn.titleLabel.lineBreakMode = NSLineBreakByCharWrapping;[self.customBtn setTitle:@"特别支持" forState:UIControlStateNormal];[self.customBtn s...原创 2018-09-18 09:50:19 · 2061 阅读 · 0 评论 -
ios 网络图片不变形处理
UIImageView *imageView =[[UIImageView alloc] initWithFrame:CGRectMake(20, 100, 176, 136)]; [self.view addSubview:imageView]; NSString *path = @"http://photocdn.sohu.com/20090420/I...原创 2019-07-07 23:32:18 · 563 阅读 · 0 评论 -
苹果 App Store 审核指南
苹果审核指南中文版:https://developer.apple.com/cn/app-store/review/guidelines/#intellectual-property原创 2019-09-19 00:34:31 · 154 阅读 · 0 评论 -
ios 解决键盘挡住输入框的问题
//注册隐藏键盘通知[[NSNotificationCenterdefaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name: UIKeyboardWillHideNotificationobject: nil]原创 2015-07-29 15:58:02 · 305 阅读 · 0 评论 -
iOS Animation各种动画效果
//图片进度显示效果,什么时间点显示到什么程度CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"strokeEnd"];animation.duration = 1;animation.values = @[@(0), @(1),@(0.75)];animation.keyTimes原创 2016-06-01 14:57:03 · 457 阅读 · 0 评论 -
ios判断某个坐标是否在某块区域内方法
实现有两种方法,//第一种是直接创建某一个区域,然后在判断是否在区域内,这种方法适合于任何图形 CGMutablePathRef pathRef =CGPathCreateMutable(); CGPathMoveToPoint(pathRef,NULL, p.x-itemWidth/2, p.y); CGPathAddLine原创 2016-03-21 20:00:46 · 2543 阅读 · 1 评论 -
ios 使用GCD控制 发送短信 按钮时间间隔
// 触发事件- (void)startTime{ dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); dispatch_source_t _timer =dispatch_source_create(DISPATCH_SOURCE_TYP原创 2015-07-29 15:50:36 · 465 阅读 · 0 评论 -
UILable 设置对齐方式扩展
typedefenum VerticalAlignment { VerticalAlignmentTop, VerticalAlignmentMiddle, VerticalAlignmentBottom,} VerticalAlignment;@interface MKLabel :UILabel{ @private Ve原创 2015-07-29 15:17:15 · 344 阅读 · 0 评论 -
ios 根据总数和列数 计算显示行数
int totalCount = mvArray.count;//总条数 int pageCnt =6;//每一页填满的个数 int pageSize;//页数 int a = totalCount % pageCnt;//总数 % 行的个数 =余数 是否等于0判断是否换段 if (a ==0) {原创 2015-07-29 15:25:09 · 3064 阅读 · 0 评论 -
iOS UITableView 中局部刷新实现方式
1.根据NSIndexSet 中 initWithIndex 方法刷新具体某SectionNSIndexSet * indexSet = [[NSIndexSetalloc] initWithIndex:0];//刷新第一个section[_tableViewreloadSections:indexSet withRowAnimation:UITableViewRowAnim原创 2015-07-24 14:46:45 · 538 阅读 · 0 评论 -
NSLayoutConstraint 修改xib中view的高度
//属性关联@property (weak,nonatomic) IBOutletNSLayoutConstraint *bottomViewHeight;//修改代码self.bottomViewHeight.constant =57;[self.bottomViewsetNeedsLayout];原创 2015-12-01 15:11:32 · 4434 阅读 · 0 评论 -
设置UITableView中Cell的间隔线从0点开始
//需要在UITableViewCell 中设置这个属性即可if (currentSystemVersion >SystemVersion71) { [selfsetLayoutMargins:UIEdgeInsetsZero];}[selfsetSeparatorInset:UIEdgeInsetsZero];原创 2015-12-01 15:17:47 · 286 阅读 · 0 评论 -
UIButton 文字换行显示
self.customBtn.titleLabel.numberOfLines = 0; self.customBtn.titleLabel.lineBreakMode = NSLineBreakByCharWrapping; [self.customBtn setTitle:@"特别支持" forState:UIControlStateNormal];原创 2015-12-01 15:52:21 · 2784 阅读 · 0 评论 -
statusBar 背景颜色设置问题
经常遇到修改 statusBar 的颜色问题,用完就忘记, 故写此文章记录下,提醒自己。一般修改状态栏需要注意4个属性。1. self.navigationController.navigationBar.translucent = YES; //是否让View 延伸到 navigationBar的背景。 2. self.navigationController.navig原创 2015-12-22 10:03:26 · 1274 阅读 · 0 评论 -
iOS UIBezierPath图形绘制
#pragma mark - 绘制外圈路径- (void)drawOuter:(CGRect)rect{ UIColor *color = [UIColor colorWithRed:224/255.0f green:224/255.0f blue:224/255.0f alpha:1.0f]; [color set]; //设置线条颜色 UIBezi原创 2016-06-01 14:19:34 · 383 阅读 · 0 评论 -
ios 常用的处理沙盒文件方法
@implementation FileOperate// 获取沙盒主目录路径+ (NSString *)getFileRootPathAtObjects{ NSString *homeDir =NSHomeDirectory(); if (homeDir && ![homeDirisEqualToString:@""]) {原创 2015-07-29 15:14:57 · 435 阅读 · 0 评论 -
iOS 实现百度LBS定位
1. 首先在info.plist 文件中添加一个属性值NSLocationAlwaysUsageDescription2.实现 BMKLocationServiceDelegate,BMKGeoCodeSearchDelegate 这两个代理方法@interfaceMKLocationManager()- (void)getCurrentLoc原创 2015-07-24 14:26:19 · 477 阅读 · 0 评论 -
iOS 中 Block实现UIAlertView
#import "MKAlertView.h"#import static constNSString *UIALERTVIEW_CLICKED_KEY =@"UIAlertView_Clicked_Key";@implementation MKAlertView//代理并实现alertView代理方法- (void)handlerClicked原创 2015-07-24 14:10:32 · 305 阅读 · 0 评论 -
ios NSDateComponents 时间计算方法
// 计算当前相隔多少天以后的日期NSDateComponents *comps = [[NSDateComponentsalloc] init];[comps setDay:1];NSCalendar *calender = [[NSCalendaralloc] initWithCalendarIdentifier:NSGregorianCalendar];NSDat原创 2015-07-21 14:32:59 · 956 阅读 · 0 评论 -
ios 常用的宏定义方法
#define IOS5 ([[[UIDevice currentDevice] systemVersion] floatValue] <6.0)#define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]#define CurrentSystemVersion ([[UIDevice cur原创 2015-07-21 14:05:25 · 603 阅读 · 0 评论 -
iOS 用NSAttributedString处理文字大小不一致情况
- (NSAttributedString *)rateContentStringWithValue:(NSDictionary *)value { double rateTotalValue = [value[@"interestRate"]doubleValue] *100+[value[@"increaseInterest"]doubleValue]*100;原创 2015-12-01 15:39:22 · 819 阅读 · 0 评论 -
ios 常用的正则表达式
//正则匹配用户密码6-20位数字和字母组合+ (BOOL)checkPassword:(NSString *) password{ NSString *pattern =@"(\\w|\\W){6,20}"; NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern]...原创 2015-07-29 16:07:16 · 298 阅读 · 0 评论 -
ios coreData 根据应用版本升级进行更新
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator{ if (_persistentStoreCoordinator !=nil) { return_persistentStoreCoordinator; } NSURL *storeURL = [[self原创 2015-07-29 15:32:15 · 363 阅读 · 0 评论