iOS開發小知識

來源:互聯網
上載者:User

標籤:

不是什麼非常高深的知識、只是記載開發中用到過的一些小技巧。隨時更新!

 

1、UILabel根據文字數量確定其Frame
//定義UILable寬度最大值CGFloat contentMaxW = 300;//擷取UILabel的Size,注意傳入的Font大小要與UILabel的的Font大小保持相同CGSize contentSize = [content boundingRectWithSize:CGSizeMake(contentMaxW, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil].size;//注意要設定UILable的numberOfLines屬性為0,才能顯示多行文字contentLabel.numberOfLines = 0;
 2、UILabel顯示HTML代碼字串
NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[htmlstr dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];contentLabel.attributedText = attrStr;
 3、使用AFN封裝網路層

AFN非常優秀的HTTP網路架構,一般在項目中我們會在其基礎上封裝網路層。在這一層處理傳入的url和參數,例如資料加密。

//YQHttpTool.h+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure;+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure; //YQHttpTools.m+ (void)post:(NSString *)url params:(NSDictionary *)params auth:(NSDictionary *)auth success:(void (^)(id))success failure:(void (^)(NSError *))failure{   AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];   mgr.responseSerializer = [AFHTTPResponseSerializer serializer];   [mgr POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {       if(success){           success(responseObject);       }   } failure:^(AFHTTPRequestOperation *operation, NSError *error) {       if(failure){           failure(error);       }   }];} 
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure{ AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; mgr.responseSerializer = [AFHTTPResponseSerializer serializer]; [mgr GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { if(success){ success(responseObject); } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { if(failure){ failure(error); } }];}
 4、檢查更新
//appID為應用的appid,建議定義成宏define appID @"xxxxxxxxx"- (void)checkUpdate{    NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/lookup?id=%@", appID];    [YQHttpTool getWithURL:url params:nil  success:^(id json) {        id jsonObject = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingAllowFragments error:nil];        if ([jsonObject isKindOfClass:[NSDictionary class]]) {            NSDictionary *dic = jsonObject;            if (nil != dic) {                NSArray *result_array = [dic objectForKey:@"results"];                if (nil != result_array && [result_array count] != 0) {                    NSDictionary *result_dic = [result_array objectAtIndex:0];                    if (nil != result_dic) {                        NSString *version = [result_dic objectForKey:@"version"];                        NSString *releaseNotes = [result_dic objectForKey:@"releaseNotes"];                        NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];                        NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile: filePath];                        NSString *oldVersion = [dict objectForKey: @"CFBundleShortVersionString"];                        if ([version compare:oldVersion options:NSNumericSearch] == NSOrderedDescending) {                            UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"升級提示"                                                                         message:releaseNotes                                                                        delegate:self       //委託給Self,才會執行上面的調用                                                               cancelButtonTitle:@"以後再說"                                                               otherButtonTitles:@"馬上更新",nil];                            [av show];                        }                    }                }            }        }    } failure:^(NSError *error) {            }];}
//遵循<UIAlertView>

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {

    if (buttonIndex != [alertView cancelButtonIndex])

    {

        NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?mt=8", appID];

        NSURL *url = [NSURL URLWithString:str];

        [[UIApplication sharedApplication] openURL:url];

    }

}

 

 

iOS開發小知識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.