日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS开发基础知识--碎片8

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发基础知识--碎片8 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:用UIImageView作為背景,但直接把按鈕或者UITextField放在上面無法相應事件。

解決辦法:UIImageView默認的UserInteractionEnabled是NO,把它修改成YES,或者可以直接在XCODE上面的view有個屬性勾選User Interaction Enabled遇到的場景(在滾動視圖里面放一個圖片視圖,在圖片視圖上又放置一個按鍵,發現一直沒有響應效果);

2:AFnetWorking報"Request failed: unacceptable content-type: text/html"

對應到自己的項目里面,我用的是AFNetworking這套網絡請求包,需要改的是:AFURLResponseSerialization.m文件223行:self.acceptableContentTypes = [NSSetsetWithObjects:@"application/json", @"text/html",@"text/json",@"text/javascript", nil];加上@"text/html",部分,其實就是添加一種服務器返回的數據格式。

3:NSMutableArray和NSArray的相互轉換

// NSArray --> NSMutableArray NSMutableArray *myMutableArray = [myArray mutableCopy]; // NSMutableArray --> NSArray NSArray *myArray = [myMutableArray copy];

4:自定義系統導航條上面的返回按鈕,以及文字,右側收藏按鈕

//中間標題UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];navLabel.text = @"團購詳情";navLabel.textColor = [UIColor whiteColor];navLabel.font = [UIFont systemFontOfSize:18];navLabel.textAlignment = NSTextAlignmentCenter;self.navigationItem.titleView = navLabel;//右邊收藏按鈕UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];rightButton.frame = CGRectMake(0, 0, 20, 20);[rightButton setBackgroundImage:LOAD_IMAGE(@"meishoucang") forState:UIControlStateNormal];[rightButton addTarget:self action:@selector(doShouCang) forControlEvents:UIControlEventTouchUpInside];UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];self.navigationItem.rightBarButtonItem = rightItem;//左邊返回按鈕UIButton *fanHuiButton = [UIButton buttonWithType:UIButtonTypeCustom];fanHuiButton.frame = CGRectMake(0, 0, 30, 40);[fanHuiButton setBackgroundImage:LOAD_IMAGE(@"fanhuijiantou") forState:UIControlStateNormal];[fanHuiButton addTarget:self action:@selector(doFanHui) forControlEvents:UIControlEventTouchUpInside];UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:fanHuiButton];self.navigationItem.leftBarButtonItem = leftItem;導航條上的title字體, 字號 可以這么定義,完全使用系統的 [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:1.0/255 green:1.0/255 blue:1.0/255 alpha:1], UITextAttributeTextColor,[UIColor clearColor],UITextAttributeTextShadowColor,[UIFont systemFontOfSize:20],UITextAttributeFont,nil]];

5:清理UITableView底部空的列

self.tableView.tableFooterView = [[UIView alloc] init];

?6:如何隱藏navigation跳轉后的頭部右鍵

//隱藏頭部左邊的返回 self.navigationItem.hidesBackButton=YES; //隱藏頭部右邊 self.navigationItem.rightBarButtonItem.customView.hidden=YES;

7:如要給UICollectionViewController視圖設置背景圖

UIImage *image=[UIImage imageNamed:@"AppBg"]; self.collectionView.layer.contents=(id)image.CGImage;

8:可以在其它地方修改rootViewController

UIWindow *window = [UIApplication sharedApplication].keyWindow;window.rootViewController = [[HVWTabBarViewController alloc] init];

9:新浪微博授權登錄報Warning: Attempt to present on whose view is not in the window hierarchy!

IntroductoryViewController *introductory=[mainStoryboard instantiateViewControllerWithIdentifier:@"introductoryview"];UINavigationController *rootNavigationController=[[UINavigationController alloc] initWithRootViewController:introductory];self.window.rootViewController=rootNavigationController;主要問題是a跳轉到b,然后b放一個授權新浪微博的按鍵,增加一個UINavigationController,然后在a跳轉到b時用nav跳轉:UIStoryboard *mainStoryboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];LoginViewController* loginviewControll=[mainStoryboard instantiateViewControllerWithIdentifier:@"loginviewcontroller"];[self.navigationController pushViewController:loginviewControll animated:YES];

10:在引入第三方TcweiboSDK報linker command failed with exit code1(use -v to see invocation)

是因為重復引入libTCWeiboSDK這個類庫,TARGETS-PROJECT-Build Phases-Link Binary With Libraries中,有三個libTcweiboSDK,可以刪除libTCWeiboSDK-I386.a

11:NSUserDefaults存放民NSDictionary

注意:NSUserDefaults支持的數據類型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系統定義的數據類型。 本次遇到的問題:當NSDictionary里面的值為null時,要寫入NSUserDefaults會報異常(attempt to insert non-property list object); 解決方式:把字典中的值進行過濾處理,為空的轉化成字符串的空值;代碼如下(創建一個擴展類):@implementation NSDictionary(Common) -(NSDictionary *) changeDictionaryNotNill {NSMutableDictionary *muResult=[[NSMutableDictionary alloc]init];NSEnumerator *enumerator=[self keyEnumerator];id key;while ((key=[enumerator nextObject])) {id value=[self objectForKey:key];if ((NSNull *)value==[NSNull null]) {[muResult setObject:@"" forKey:key];}else{[muResult setObject:value forKey:key];}}return muResult; } @end

?

總結

以上是生活随笔為你收集整理的IOS开发基础知识--碎片8的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。