麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

iphone/ipad關于size,frameandbounds總結和UIScrollview學習筆記

2019-11-14 19:52:42
字體:
來源:轉載
供稿:網友

1. iphone/ipad大小

 

DeviceScreen dimensions(in points)
iphone and ipod320 X 480
ipad768 X 1024

 

2. UIScreen bounds and applicationFrame

[UISCreen mainScreen].bounds, 永遠返回portait模式的width/height, 也就是說width:320 height:480 for iPhone

[UISCreen mainScreen].applicationFrame更加復雜一些,它考慮了status bar的高度。

portait模式, x:0, y:20, width:320, height:460

landscape,   x:20, y:0, width:300, height:480

關于frame和bounds的區別,請參考UIView中的frame和bounds屬性的區別

3. status bar height: 20, tool bar height: 44, tab bar height:44

4. UIScrollView

 

  • contentSize和contentInSet

 

 

  • contentOffSet:
當前scroll view可見的左上角頂點在content view中的位置, 可以在代碼中通過控制這個直實現滾動scroll view. 例如如果一個view里面有很多text field,當鍵盤顯示的時候,這個text field可能會被隱藏掉,因此我們需要把text field scroll到可見的區域。如下圖所示的情況:
 
// Called when the UIKeyboardDidShowNotification is sent.- (void)keyboardWasShown:(NSNotification*)aNotification{    NSDictionary* info = [aNotification userInfo];    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;     UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);    scrollView.contentInset = contentInsets;    scrollView.scrollIndicatorInsets = contentInsets;     // If active text field is hidden by keyboard, scroll it so it's visible    // Your application might not need or want this behavior.    CGRect aRect = self.view.frame;    aRect.size.height -= kbSize.height;    if (!CGRectContainsPoint(aRect, activeField.frame.origin) ) { //判斷該text field是否在可見區域        CGPoint scrollPoint = CGPointMake(0.0, instance); //這里需要計算需要scroll的長度,假設instance是計算出來的結果。        [scrollView setContentOffset:scrollPoint animated:YES];    }}

  

  • UIScroll view使用翻頁模式

 

原文來自這里, 這里介紹幾個關鍵的內容:

1.  pagingMode需要設置為YES

2. contentSize是所有頁數的width總和, 例如你需要顯示100頁,那contentSize的寬度就是100*scroll.frame.size.width

3. showsHorizontalScrollIndicator和showsVerticalScrollIndicator設置為NO

然后需要在scroll view的delegate中實現scrollViewDidScroll:方法,這個方法在scroll view的contentOffSet發生變化的時候被調用。翻頁模式的核心思想就是scroll view需要顯示下一頁的時候,創建一個view, 在這個view上準備好數據,然后把這個view加到scroll view當前顯示的位置。

代碼如下所示,另外還可以改進的一個地方是需要翻頁之前,需要把后面一頁的內容也顯示出來,否則會有一半黑的屏幕顯示。 

-(void) loadPageView:(NSUInteger)page{    UIView* view = [[UIView alloc] init];    view.backgroundColor = [UIColor whiteColor];        CGRect rc = self.view.frame;    rc.origin.y = 0;    rc.origin.x = page * self.view.frame.size.width;  //創建一個view,調整x直,因為其他直和scroll view都是一樣的    view.frame = rc;        UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, rc.size.width, 40)];    label.text = [NSString stringWithFormat:@"current page is :%d", page];    [view addSubview:label];        [(UIScrollView*)self.view addSubview:view];}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{    if (scrollView.contentOffset.x >= (myCurrentPage+0.5) * self.view.frame.size.width) //需要顯示下一頁了    {        myCurrentPage++;        [self loadPageView:myCurrentPage];    }}

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 视频一区二区三区免费观看 | 亚洲成人免费影视 | 久久久精品视频在线观看 | 俄罗斯16一20sex牲色另类 | 日韩视频高清 | 中文字幕在线观看日韩 | 特一级毛片| 国产精品毛片无码 | 黄色久 | 牛牛碰在线视频 | 精品一二三区视频 | 欧美三级欧美成人高清www | 久久99精品久久久久久236 | 99亚洲伊人久久精品影院红桃 | 欧美精品日日鲁夜夜添 | 国产精品成人一区二区三区吃奶 | 日日噜噜噜噜久久久精品毛片 | 久久免费视频7 | 毛片免费大全短视频 | 国产精品久久久久久影视 | 久久免费看毛片 | 国产精品欧美久久久久一区二区 | lutube成人福利在线观看污 | 亚洲最大av网站 | 男人的天堂色偷偷 | 暴力强行进如hdxxx | 免费看一级片 | 欧洲成人av | 久久伊人国产精品 | 国产成年人在线观看 | 国产精品久久久久久久久久三级 | 欧美日韩中文字幕在线视频 | 羞羞视频免费网站入口 | 精品国产观看 | 爱射av| 日本精品中文字幕 | av电影在线观看网站 | 农村少妇吞精夜夜爽视频 | 鲁人人人鲁人人鲁精品 | 欧美一级免费在线观看 | 嫩嫩的freehdxxx |