亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

iOS基礎控件(下)

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

  上篇介紹了UIButton、UILabel、UIImageView和UITextField,這篇就簡短一點介紹UIScrollView和UIAlertView。

UIScrollView

  顧名思義也知道這個是和滾動相關的控件,在Android開發時遇到過ScrollView,當內容的尺寸超出了屏幕范圍之后,用ScrollView則可以通過滾動的方式使得超出屏幕的那部分內容通過滾動的方式顯示出來,在Android里面有水平的ScrollView和垂直的ScrollView,在iOS里面就只有一個ScrollView,而且這個ScrollView的功能更大,某些功能已經超出了ScrollView的作用范圍了。下面則看一下ScrollView的一些屬性

  • contentSize:CGSize類型,ScrollView的內容的實際大??;
  • contentOffset:CGPoint類型,ScrollView當前滾動到的位置,以視圖的左上角來定位;
  • contentInset:UIEdgeInsets類型,用于增加ScrollView內容的滾動范圍,相當于給ScrollView的四周補白;

下面則是其他屬性

  • bounces:BOOL類型,是否有彈簧效果
  • scrollEnabled   :BOOL類型,是否能滾動
  • showsHorizontalScrollIndicator:BOOL類型,是否顯示水平方向的滾動條
  • showsVerticalScrollIndicator:BOOL類型,是否顯示垂直方向的滾動條
  • indicatorStyle:UIScrollViewIndicatorStyle類型,設定滾動條的樣式,這個枚舉類型有三個值
   UIScrollViewIndicatorStyleDefault   UIScrollViewIndicatorStyleBlack   UIScrollViewIndicatorStyleWhite
  • dragging:BOOL類型,是否正在被拖拽
  • tracking:BOOL類型,當touch后還沒有拖動的時候值是YES,否則NO
  • decelerating:BOOL類型,是否正在減速
  • zooming:BOOL類型, 是否正在縮放

ScrollView的最直接的功能就是滑動,但是但是它還兼備著手勢縮放(在Android中需要在ImageView中使用Matrix),還有滑動翻頁的功能(在Android中是通過ViewPager是實現),下面都通過代碼來實現,在viewDidLoad方法中加入

    UIImage *image=[UIImage imageNamed:@"Android Struct2.gif"];    self.imageView=[[UIImageView alloc]initWithImage:image];    self.imageView.tag=22;    [self.scrollView addSubview:self.imageView];

  單純通過上面的代碼則可以實現滑動查看一幅圖片的功能,一個UIScrollView其實也是一個容器,它里面的子空間都是通過addSubview方法添加進去,而最重要的則是通過設置contentSize這個屬性來告訴UIScrollView究竟子控件的尺寸有多大。

  手勢縮放的示例是在上面的基礎上再作修改,如果只需要單純地實現手勢縮放,主要是實現了UIScrollView的- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView方法,同時也要設置UIScrollView的最大最小的縮放比例:minimumZoomScale屬性和maximumZoomScale屬性,在viewDidLoad方法中加入

    UIImage *image=[UIImage imageNamed:@"Android Struct2.gif"];    self.imageView=[[UIImageView alloc]initWithImage:image];    self.imageView.tag=22;    [self.scrollView addSubview:self.imageView];        self.scrollView.contentSize=imageView.image.size;    self.scrollView.maximumZoomScale=5;    self.scrollView.minimumZoomScale=0.2;    self.scrollView.delegate=self;

在視圖控制器里面的類中加入下面的方法

-(UIView*) viewForZoomingInScrollView:(UIScrollView*)scrollView{    return self.imageView;}

如果要額外加一些手勢則需要使用UITapGestureRecognizer,在viewDidLoad中加入

    UITapGestureRecognizer *twoFingerTaPRecongizer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewTwoFingerTapped)];    twoFingerTapRecongizer.numberOfTapsRequired=1;    twoFingerTapRecongizer.numberOfTouchesRequired=2;    [self.scrollView addGestureRecognizer:twoFingerTapRecongizer];

再定義下面這個方法

-(void)scrollViewTwoFingerTapped:(UITapGestureRecognizer*)recognizer{    CGFloat newZoomScale=self.scrollView.zoomScale/1.5f;    newZoomScale =MAX(newZoomScale,self.scrollView.minimumZoomScale);        [self.scrollView setZoomScale:newZoomScale animated:true];}

  接下來說的是翻頁功能,要想翻頁功能最好是結合另一個控件UipageControl,關于這個控件有幾個屬性要列舉一下

  • numberOfPages : 總頁數
  • currentPage : 當前的頁碼
  • hidesForSinglePage : 當只有一頁的時候,是否要隱藏視圖監聽

要讓UIScrollView進入翻頁模式則需要設置pagingEnabled屬性,把它設置成True。代碼如下,在viewDidLoad中加入

 1     CGFloat w=self.view.frame.size.width; 2     CGFloat h=self.view.frame.size.height; 3     for(int i=0;i<3;i++) 4     { 5         UIImageView *imageView=[[UIImageView alloc]init]; 6         imageView.frame=CGRectMake(i*w, 0, w, h); 7         imageView.image=[UIImage imageNamed:@"African Daisy.gif"]; 8          9         [self.scrollView addSubview:imageView];10     }11     12     self.scrollView.contentSize=CGSizeMake( 3*w, 0);13     self.scrollView.showsHorizontalScrollIndicator=false;14     self.scrollView.pagingEnabled=true;15     self.scrollView.delegate=self;16 17 UIPageControl *pagecontrol=[[UIPageControl alloc] init];18 pagecontrol.center=CGPointMake(w*0.5,h-20);19 pagecontrol.bounds=CGRectMake(0, 0, 150, 50);20 pagecontrol.numberOfPages=3;21 22 pagecontrol.pageIndicatorTintColor=[UIColor grayColor];23 pagecontrol.currentPageIndicatorTintColor=[UIColor whiteColor];24 25 pagecontrol.enabled=false;26 [self.view addSubview:pagecontrol];27 _pageControl=pagecontrol;28 29 -(void) scrollViewDidScroll:(UIScrollView *)scrollView30 {31     int page=scrollView.contentOffset.x/scrollView.frame.size.width;32     _pageControl.currentPage=page;33 }

UIAlertView

  UIAlertView是消息彈窗,它的作用與效果不用多說了,要使用UIAlertView的就需要讓控制器實現UIAlertViewDelegate協議。有用到的屬性如下

  • title:消息框的標題
  • message:消息框的內容
  • numberOfButtons:按鈕總數
  • cancelButtonTitle:取消按鈕的標題
  • cancelButtonIndex:取消按鈕的索引
  • firstOtherButtonIndex:第一個其他類型按鈕的索引
  • visible:消息框可視
  • alertViewStyle:UIAlertViewStyle類型,是消息框的類型,它是一個枚舉類型,它的值如下
  • UIAlertViewStyleDefault 只彈信息和按鈕
  • UIAlertViewStyleSecureTextInput 有一個textfield加密框
  • UIAlertViewStylePlainTextInput 有一個不加密的textfield
  • UIAlertViewStyleLoginAndPassWordInput 有兩個textfield,Login和password

對于上面提到的按鈕索引,是取消按鈕和其他按鈕組成的一個集合,其中第一個一般是Cancel按鈕,它的索引是0,如果Cancel按鈕沒有設置,則它會是-1,其他則按添加的順序。在iOS的消息框中,只有Cancel有特有名稱,其他按鈕則沒有特有名稱,都統稱為OtherButton。

消息框的其中一個構造函數如下

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"AlertViewTest"                                                     message:@"message"                                                    delegate:self                                           cancelButtonTitle:@"Cancel"  otherButtonTitles:@"OtherBtn1",@"OtherBtn2",@"OtherBtn3",nil];

上面otherButtonTitles參數可以添加多個按鈕。添加按鈕除了在構造函數里面弄之外,還可以通過方法添加。如果不需要Cancel按鈕,則給參數傳一個nil值

[alert addButtonWithTitle:@"addButton"];

讓消息框顯示則需要調用下面的方法

[alert show];

消息框還有一系列的事件

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{    //這個事件在消息框上面的按鈕被點擊之后觸發,通過buttonIndex來確定究竟是哪個按鈕被點擊,然后采取相應的動作}

還有其他6個事件方法

 1 -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 2 { 3     //AlertView已經消失時執行的事件 4 } 5  6 -(void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex 7 { 8     //ALertView即將消失時的事件 9 }10 11 -(void)alertViewCancel:(UIAlertView *)alertView12 {13     //AlertView的取消按鈕的事件,但這個事件一直我沒有觸發過14 }15 16 -(void)didPresentAlertView:(UIAlertView *)alertView17 {18     //AlertView已經顯示時的事件19 }20 21 -(void)willPresentAlertView:(UIAlertView *)alertView22 {23     //AlertView即將顯示時24 }25 26 -(BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView27 {28     //第一個觸發的事件29 }

對于上面一系列的事件大體可以分為兩類,顯示的事件,他們觸發順序如下

alertViewShouldEnableFirstOtherButton——>willPresentAlertView——>didPresentAlertView

另一類是消失的事件,是在點擊后才會觸發

clickedButtonAtIndex——>(如果會觸發視圖取消,則會調用alertViewCancel)willDismissWithButtonIndex——>didDismissWithButtonIndex

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品高潮呻吟视频| 欧美激情一级二级| 亚洲高清色综合| 亚洲精品免费在线视频| 国产精品久久久久久久久久久新郎| 久久久久久久影院| 欧美日韩一区免费| 亚洲视频电影图片偷拍一区| 国产精品福利在线观看| 欧美激情一区二区久久久| 韩国视频理论视频久久| 亚洲毛茸茸少妇高潮呻吟| 日韩精品免费视频| 国内精品久久久| 国产精品久久网| 亚洲第一国产精品| 日韩高清中文字幕| 久久久精品国产| 中文字幕日韩欧美在线| 精品国产拍在线观看| 精品国偷自产在线视频99| 精品magnet| 欧美性在线视频| 欧美自拍视频在线观看| 国模叶桐国产精品一区| 尤物九九久久国产精品的特点| …久久精品99久久香蕉国产| 亚洲精品视频在线观看视频| 国产精品亚洲自拍| 亚洲三级黄色在线观看| 97香蕉超级碰碰久久免费的优势| 欧美丰满片xxx777| 久久久久国产精品www| 久久99国产精品久久久久久久久| 91极品女神在线| 久久久女女女女999久久| 亚洲人成电影网站色…| 日本成人精品在线| 国产成人精品电影久久久| 色狠狠av一区二区三区香蕉蜜桃| 97在线视频免费看| 国产女人精品视频| 亚洲aa在线观看| 亚洲成人动漫在线播放| 亚洲乱码国产乱码精品精天堂| 成人黄色片在线| 久久国产精品久久久| 国产精品亚洲视频在线观看| 国产精品草莓在线免费观看| 不卡av电影在线观看| 日韩中文字幕亚洲| 欧美国产日韩中文字幕在线| 国产日韩综合一区二区性色av| 亚洲一区二区三区在线免费观看| 国产成人精品综合久久久| 成人国产精品一区| 97在线看福利| 不卡av日日日| 亚洲欧洲av一区二区| 久久夜精品va视频免费观看| 日本午夜人人精品| 日韩电影视频免费| 国产精品国产三级国产专播精品人| 日韩一区二区福利| 免费97视频在线精品国自产拍| 亚洲国产日韩欧美在线动漫| 亚洲欧美中文日韩v在线观看| 色噜噜国产精品视频一区二区| 欧美黑人xxxx| 国产一区二区三区欧美| 欧美精品国产精品日韩精品| 日韩国产精品亚洲а∨天堂免| 亚洲精品电影久久久| 亚洲精品久久久久久久久久久| 亚洲国产一区自拍| 伊人男人综合视频网| 不用播放器成人网| 久久精品99国产精品酒店日本| 色综久久综合桃花网| 欧美另类老女人| 日韩欧美成人网| 国内精品久久久久| 岛国精品视频在线播放| 日韩欧美在线观看| 久久精品99无色码中文字幕| 中文字幕成人精品久久不卡| 日韩在线观看你懂的| 中文字幕精品一区久久久久| 精品动漫一区二区| 日韩精品高清在线观看| 亚洲一区二区三区sesese| 欧美高清视频在线观看| 亚洲在线观看视频| 日韩福利在线播放| 红桃视频成人在线观看| 欧美在线视频网| 欧美性猛交xxxx乱大交| 色偷偷888欧美精品久久久| 亚洲人成电影网站色| 欧美激情免费看| 91久热免费在线视频| 九色精品免费永久在线| 亚洲性视频网址| 久久亚洲成人精品| 97碰碰碰免费色视频| 77777亚洲午夜久久多人| 亚洲一区www| 91国产美女视频| 日本一区二三区好的精华液| 91精品国产高清久久久久久久久| 色播久久人人爽人人爽人人片视av| 国产精品jizz在线观看麻豆| 精品亚洲一区二区三区在线播放| zzjj国产精品一区二区| 国产福利精品av综合导导航| 国产精品久久久久久久7电影| 色偷偷噜噜噜亚洲男人的天堂| 国产精品成av人在线视午夜片| 日韩影视在线观看| 国产精品久久久久久av下载红粉| 亚洲日本成人女熟在线观看| 日本中文字幕不卡免费| 26uuu日韩精品一区二区| 久久亚洲春色中文字幕| 亚洲无av在线中文字幕| 久久欧美在线电影| 51精品国产黑色丝袜高跟鞋| 久久精品男人天堂| 亚洲国产精品小视频| 97久久久久久| 中文字幕精品—区二区| 欧美国产视频日韩| 亚洲欧洲在线看| 欧美电影在线观看高清| 色婷婷av一区二区三区久久| 亚洲电影免费观看高清完整版在线观看| 日韩精品中文字幕久久臀| 日韩激情视频在线播放| 国产女同一区二区| 欧美老女人性视频| 插插插亚洲综合网| 欧美日韩国产成人在线观看| 欧美成人免费播放| 亚洲国产精品va在看黑人| 久久久久久久久亚洲| 大胆欧美人体视频| 亚洲视频一区二区| 亚洲欧美综合v| 欧美激情视频给我| 久久久人成影片一区二区三区观看| 亚洲欧美国产一区二区三区| 日韩一区视频在线| 国产精品扒开腿做爽爽爽视频| 国产99久久久欧美黑人| 欧美天天综合色影久久精品| 91在线高清视频| 国产精品视频播放| 亚洲伊人久久综合| 亚洲综合精品伊人久久| 亚洲伊人一本大道中文字幕| 色yeye香蕉凹凸一区二区av| 综合国产在线观看| 日韩中文字在线| 国产欧美一区二区三区久久人妖|