1:帶中文的URL處理 2:取WebView高度 3:UIView的部分圓角問題 4:強制App直接退出 5:修改占位符顏色和大小 6:取消系統的返回手勢 7:改WebView字體/顏色 UIWebView設置字體大小,顏色,字體: UIWebView無法通過自身的屬性設置字體的一些屬性,只能通過h ...
1:帶中文的URL處理
// http://static.tripbe.com/videofiles/視頻/我的自拍視頻.mp4 NSString *path = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,(__bridge CFStringRef)model.mp4_url, CFSTR(""),CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
2:取WebView高度
- (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue]; CGRect frame = webView.frame; webView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, height); }
3:UIView的部分圓角問題
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)]; view2.backgroundColor = [UIColor redColor]; [self.view addSubview:view2]; UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view2.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)]; CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; maskLayer.frame = view2.bounds; maskLayer.path = maskPath.CGPath; view2.layer.mask = maskLayer; //其中,byRoundingCorners:UIRectCornerBottomLeft |UIRectCornerBottomRight //指定了需要成為圓角的角。該參數是UIRectCorner類型的,可選的值有: * UIRectCornerTopLeft * UIRectCornerTopRight * UIRectCornerBottomLeft * UIRectCornerBottomRight * UIRectCornerAllCorners
4:強制App直接退出
- (void)exitApplication { AppDelegate *app = [UIApplication sharedApplication].delegate; UIWindow *window = app.window; [UIView animateWithDuration:1.0f animations:^{ window.alpha = 0; } completion:^(BOOL finished) { exit(0); }]; }
5:修改占位符顏色和大小
textField.placeholder = @"請輸入用戶名"; [textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"]; [textField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];
6:取消系統的返回手勢
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
7:改WebView字體/顏色
UIWebView設置字體大小,顏色,字體: UIWebView無法通過自身的屬性設置字體的一些屬性,只能通過html代碼進行設置 在webView載入完畢後:
- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *str = @"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '60%'"; [webView stringByEvaluatingJavaScriptFromString:str]; } 或者加入以下代碼 NSString *jsString = [[NSString alloc] initWithFormat:@"document.body.style.fontSize=%f;document.body.style.color=%@",fontSize,fontColor]; [webView stringByEvaluatingJavaScriptFromString:jsString];
8:WebView圖片自適應屏幕
- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *js = @"function imgAutoFit() { \ var imgs = document.getElementsByTagName('img'); \ for (var i = 0; i < imgs.length; ++i) {\ var img = imgs[i]; \ img.style.maxWidth = %f; \ } \ }"; js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20]; [webView stringByEvaluatingJavaScriptFromString:js]; [webView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"]; }
9:BOOL / bool / Boolean / NSCFBoolean的區別
10:nil / Nil / NULL / NSNull區別
a、nil:一般賦值給空對象;
b、NULL:一般賦值給nil之外的其他空值。如SEL等;
舉個慄子(好重啊~):
[NSApp beginSheet:sheet
modalForWindow:mainWindow
modalDelegate:nil //pointing to an object
didEndSelector:NULL //pointing to a non object/class
contextInfo:NULL]; //pointing to a non object/class
c、NSNULL:NSNull只有一個方法:+ (NSNull *) null;
[NSNull null]用來在NSArray和NSDictionary中加入非nil(表示列表結束)的空值.
NSMutableDictionary *mutableDictionary = [NSMutableDictionary dictionary]; mutableDictionary[@"someKey"] = [NSNull null]; // Sets value of NSNull singleton for `someKey` NSLog(@"Keys: %@", [mutableDictionary allKeys]); // @[@"someKey"]
d、當向nil發送消息時,返回NO,不會有異常,程式將繼續執行下去;
而向NSNull的對象發送消息時會收到異常。