IOS開發基礎知識--片段8,ios基礎知識--片段

來源:互聯網
上載者:User

IOS開發基礎知識--片段8,ios基礎知識--片段

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.