你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 一個普通 iOS 碼農的幾個小項目相關知識點總結

一個普通 iOS 碼農的幾個小項目相關知識點總結

編輯:IOS開發綜合

本文為您引見一個普通 IOS 碼農的幾個小項目相關知識點總結的相關引見,詳細代碼請看下文

題記:在開發的路途上,有的人走的很深很遠,而關於停留在初級階段的我來說,還要學的、閱歷的還有很多... list SQLite 數據庫中,當把表裡的數據都清空時,下次拔出的數據的 id 主鍵不會從 0 開端。保險起見 下次從數據庫獲取數據時先獲取第一個的 id 主鍵,不知道還有沒有其他復雜的辦法 假如設置了 tableView 的上邊距再運用 MJRefresh時,刷新控件會錯位,可運用疏忽 tableView等的內邊距辦法,該辦法在類:MJRefreshHeader 裡,辦法名 ignoredScrollViewContentInsetTop 填寫表單型的 tableView,用到了 textField 要留意需求顯示的是 textField.text 還是 textField.placeholder,留意 cell 循環援用。 需求寫多品種似的表格時,UI 界面就一套,用本地不同的 plist 數據去控制表格,給數據很多屬性來區分:添加正則判別數值,添加款式... kvc 修正已有類的公有屬性是可以的,運用蘋果未暴露的類的公有屬性和辦法是不允許的 一個頁面屢次異步懇求數據(運用 AFN),但需求在最後一次懇求數據的時分才刷新 UI 異步懇求嵌套,在一次異步懇求成功或失敗的回調裡停止下一次懇求,合適於兩次懇求有分明的先後關系時 用一個變量做標志,在每一次懇求成功的回調裡 需求寫以下兩個方面的代碼:①將變量加個1,②假如變量等於懇求的個數就執行懇求完成、刷新UI的辦法 ,當然懇求失敗也需求這樣處置 其他辦法...? 謂詞 NSPredicate 的運用
 NSArray *tmpArray = [self.zhiBiaoArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"month == '%@'", month]]];
NSString *regex = @"^[0-9]*$";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self matches %@",regex];
return [predicate evaLuateWithObject:text];

依據數據中的對象的屬性排序

tmpArray = [tmpArray sortedArrayUsingComparator:^NSComparisonResult(SuiFangItem *obj1, SuiFangItem *obj2) {
return [obj1.SUBDATE compare:obj2.SUBDATE] == NSOrderedAscending;}];

經典代碼,標簽 for 循環排序設置標簽的 xy

 for (NSInteger i = 0; i < tagBtnArray.count; i ++) {
   UIButton *tagBtn = tagBtnArray[i];
   if (i == 0) {
     tagBtn.fd_x = 0;
     tagBtn.fd_y = 0;
     } else {
       UIButton *previousBtn = tagBtnArray[i -1];
       tagBtn.fd_x = CGRectGetMaxX(previousBtn.frame) + 10;
       tagBtn.fd_y = previousBtn.fd_y;
       if ((tagViewW - tagBtn.fd_x) < tagBtn.fd_width) {tagBtn.fd_x = 0;
tagBtn.fd_y = CGRectGetMaxY(previousBtn.frame) + 10;
       }
  }
 }
解析 XmlRss/ target=_blank class=infotextkey>Xml 值格式 的數據,XmlRss/ target=_blank class=infotextkey>Xml 屬性情式 的可運用零碎的 運用 XmlDictionary 將 xml 轉成字典,再解析

服務器前往一堆帶有月份的數據,服務器並未做按月分組,本地完成按月分組

// 取得數據中存在的月份,共有哪幾個月份
NSMutableArray *monthArray = [NSMutableArray array];
ZhiBiaoItem *firstItem = self.zhiBiaoArray[0];
[monthArray addObject:firstItem.month];

for (NSInteger i = 1; i < self.zhiBiaoArray.count; i ++) {
    ZhiBiaoItem *item = self.zhiBiaoArray[i];
    if (![item.month isEqualToString:firstItem.month]) {
        if ([monthArray containsObject:item.month]) {
            continue;
        }
        [monthArray addObject:item.month];
    }
}

self.monthArray = monthArray;

// 依據月份停止分組
NSMutableDictionary *resultDict = [NSMutableDictionary dictionary];
for (NSString *month in monthArray) {
    NSArray *tmpArray = [self.zhiBiaoArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"month == '%@'", month]]];
    [resultDict setObject:tmpArray forKey:month];
}

self.resultDict = resultDict;
運用 AFN 配置服務器自己創立的 https 證書的 https

運用 AFN 疏忽一切 https 證書、不檢測域名的戰略

AFSecurityPolicy *secPolicy        = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
secPolicy.alloWinvalidCertificates = YES;
secPolicy.validatesDomainName      = NO;
_mgr.securityPolicy                = secPolicy;
配置 AFN 本地 https證書? 不清楚如何配置

PNChart 修正 節點label 的大小,在源碼中修正

- (CATextLayer *)createPointLabelFor:(CGFloat)grade pointCenter:(CGPoint)pointCenter width:(CGFloat)width withChartData:(PNLineChartData *)chartData {
    CATextLayer *textLayer = [[CATextLayer alloc] init];
    [textLayer setAlignmentMode:kCAAlignmentCenter];
    [textLayer setForegroundColor:[chartData.pointLabelColor CGColor]];
    [textLayer setBackgroundColor:[[[UIColor whiteColor] colorWithAlphaComponent:0.8] CGColor]];
    [textLayer setCornerRadius:textLayer.fontSize / 8.0];

    if (chartData.pointLabelFont != nil) {
        [textLayer setFont:(__bridge CFTypeRef) (chartData.pointLabelFont)];
        textLayer.fontSize = [chartData.pointLabelFont pointSize];
    }

    CGFloat textHeight = textLayer.fontSize * 1.1;
    CGFloat textWidth = width * 7;
    CGFloat textStartPosY;

}
PNChart 修正 x 軸 label 的地位,源碼辦法
- (void)setXLabels:(NSArray *)xLabels withWidth:(CGFloat)width  {
}
PNChart 修正 y 軸,源碼辦法
- (void)setYLabels {
PNChartLabel *minLabel = [[PNChartLabel alloc] initWithFrame:CGRectMake(0.0, (NSInteger) _chartCavanHeight - 10, (NSInteger) _chartMarginBottom, (NSInteger) _yLabelHeight)];

CGRect labelFrame = CGRectMake(0.0,
                    (NSInteger) (_chartCavanHeight + _chartMarginTop - index * yStepHeight) -10,

}
PNChart 修正曲線 程度方向往後全體便移一點間隔,源碼辦法
- (void)calculateChartPath:(NSMutableArray *)chartPath andPointsPath:(NSMutableArray *)pointsPath andPathKeyPoints:(NSMutableArray *)pathPoints andPathStartEndPoints:(NSMutableArray *)pointsOfPath {


int x = i * _xLabelWidth + _chartMarginLeft + _xLabelWidth / 2.0 + 6;


}



以上就是這篇文章的全部內容了,希望大家可以喜歡。

【一個普通 iOS 碼農的幾個小項目相關知識點總結】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved