日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...

發(fā)布時間:2023/12/19 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

生命周期,生命周期,生命周期,重要的事要說三遍,戰(zhàn)五渣的我最常用的好像只有Viewwillappear吧

?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
??? //得到手機主屏幕尺寸
??? self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
??? // Override point for customization after application launch.
??? self.window.backgroundColor = [UIColor whiteColor];
??? //把self.window 作為主窗體在界面顯示出來
??? [self.window makeKeyAndVisible];

??? return YES;
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark View
- (void)View{
??? //UIWindow是應(yīng)用程序的窗體,所有的界面都顯示在UIWindow上
??? //一般情況下一個應(yīng)用程序只有一個UIWindow,它類似與畫布,所有的界面都在上面描繪
??? //initWithFrame 傳給它一個顯示的區(qū)域大小,作為根都是屏幕大小
??? //使用UIScreen 獲取屏幕的大小,bounds就是屏幕的寬高
??? //CGRect描繪一個矩形,指定原點和寬高即可
?? ?
??? CGRect rect = [UIScreen mainScreen].bounds;
??? NSLog(@"screen bounds%@",NSStringFromCGRect(rect));
??? //iphone的屏幕坐標(biāo)原點在左上角,x軸向右增加,y軸向下增加
??? self.window = [[UIWindow alloc]initWithFrame:rect];
??? //設(shè)置window的背景色,backgroundColor
??? //在ios中使用UIColor代表顏色,也可以指定red green blue三元色來指定
??? self.window.backgroundColor = [UIColor orangeColor];
?? ?
??? //UIView :view 是代表視圖,一個可見的顯示區(qū)域
??? UIView *view1 = [[UIView? alloc]initWithFrame:CGRectMake(10, 20, 200, 200)];
??? view1.backgroundColor = [UIColor redColor];
?? ?
??? //所有要顯示的控件都必須最終添加到window上,才能顯示出來、
??? //addSubView:添加一個子視圖,這樣view1就和window發(fā)生了關(guān)聯(lián)
??? //window就是view1的父視圖,view1就是子視圖
??? [self.window addSubview:view1];
?? ?
??? //指定frame時,原點的坐標(biāo)系是父視圖的坐標(biāo)系
??? UIView *subView1 = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
??? subView1.backgroundColor = [UIColor blueColor];
??? //把subView1添加到view1上
??? [view1 addSubview:subView1];
?? ?
??? //根據(jù)自身的寬高加中心點的方式指定一個顯示區(qū)域
??? UIView *view2 = [[UIView alloc]init];
??? //指定bounds時,x,y坐標(biāo)由于是參考自身的坐標(biāo)系所以永遠(yuǎn)為0,只需要指定寬高即可
??? //center 中心點
??? view2.bounds = CGRectMake(0, 0, 150, 150);
??? //center中心點的坐標(biāo)系是參考父視圖
??? view2.center = CGPointMake(200, 300);
??? view2.backgroundColor = [UIColor blackColor];
??? //把通過指定bounds和center界定出來的view,添加到windows上
??? [self.window addSubview:view2];
??? //frame 本身就是靠bounds + center 計算出來的
????? [self.window bringSubviewToFront:view];
??? //把某一個view放到最下面
??? //[self.window sendSubviewToBack:<#(UIView *)#>];
??? //[self.window insertSubview:(UIView *) aboveSubview:(UIView *)];
??? //[self.window insertSubview:<#(UIView *)#> belowSubview:<#(UIView *)#>];
??? //[self.window insertSubview:<#(UIView *)#> atIndex:<#(NSInteger)#>]
??? //指定角的半徑
??? View.layer.cornerRadius = 50;
??? View.layer.borderColor = [UIColor redColor].CGColor;
??? View.layer.borderWidth = 2;
?? ?
??? //layer:
??? //1:每一個view都會對應(yīng)一個layer,layer幫我們做的事情是渲染view的內(nèi)容
??? //2:layer中有一些屬性是view沒有的,這樣我們可以對UIView做進(jìn)一步的設(shè)置
??? //3:所有發(fā)生在view上的動畫,都是layer完成的。
?? ?
??? //UIView的作用:1:顯現(xiàn)layer渲染出來的界面,2:與用戶進(jìn)行交互
?? ?
??? //UIViewAutoresizingFlexibleLeftMargin 子視圖的左邊根據(jù)父視圖的大小變化而變化
??? //UIViewAutoresizingFlexibleWidth 子視圖的寬度根據(jù)父視圖的大小變化而變化
??? //& | !
??? //autoresizingMask 設(shè)置子視圖怎么根據(jù)父視圖的大小變化而變化的屬性
??? blueView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
??? //subviews 把自己的子視圖放到數(shù)組中
??? NSArray *subViews = self.window.subviews;
??? NSLog(@"%@",subViews);
?? ?
??? //交換兩個視圖的次序,次序既為數(shù)組中的下表
??? [self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
??? //----------------------------------------------------------------------
??? //UIview頁面翻轉(zhuǎn)動畫
?? ?
??? //??? UIView *redView = [self.window viewWithTag:100];
??? //??? CGRect rect = redView.frame;
??? //
??? //??? [UIView animateWithDuration:1 animations:^{
??? //??????? CGRect newRect = CGRectInset(rect, -10, -10);
??? //??????? redView.frame = newRect;
??? //??? }];
?? ?
??? //對最上層
??? NSArray *subViewArray = self.window.subviews;
??? UIView *topView = [subViewArray objectAtIndex:1];
?? ?
??? //動畫塊,注意必須成對的出現(xiàn)
??? //animationID 字符串表識一個annimation
??? //context:這里可以傳遞動畫結(jié)束時還需要使用的參數(shù)
??? [UIView beginAnimations:nil context:nil];
?? ?
??? //設(shè)置動畫行進(jìn)的速度曲線
??? //??? typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
??? //??????? UIViewAnimationCurveEaseInOut,???????? // slow at beginning and end
??? //??????? UIViewAnimationCurveEaseIn,??????????? // slow at beginning
??? //??????? UIViewAnimationCurveEaseOut,?????????? // slow at end
??? //??????? UIViewAnimationCurveLinear
??? //??? };
?? ?
??? [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
?? ?
??? //整個動畫的持續(xù)時間
??? [UIView setAnimationDuration:1];
?? ?
??? //UIViewAnimationTransitionCurlUp 向上翻頁
??? //UIViewAnimationTransitionCurlDown 向下
??? //UIViewAnimationTransitionFlipFromLeft? 從左邊翻轉(zhuǎn)
??? //UIViewAnimationTransitionFlipFromRight 從右邊翻轉(zhuǎn)
?? ?
??? //forView 是在哪一個view上做動畫
??? //catche 是否要緩存最初捕獲的頁面,一般寫為YES,提高效率
??? [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.window cache:YES];
?? ?
??? //設(shè)置動畫的重復(fù)次數(shù)
??? [UIView setAnimationRepeatCount:1];
?? ?
??? //是否自動翻轉(zhuǎn):YES 自動翻轉(zhuǎn)
??? //[UIView setAnimationRepeatAutoreverses:YES];
?? ?
??? //設(shè)置動畫的代理
??? [UIView setAnimationDelegate:self];
??? //設(shè)置動畫結(jié)束時調(diào)用的方法
??? //[UIView setAnimationDidStopSelector:@selector(annimationStop)];
?? ?
??? //??? [UIView beginAnimations:<#(NSString *)#> context:<#(void *)#>];
??? //??? [UIView commitAnimations];
?? ?
??? [UIView commitAnimations];
?? ?
??? //把上層的view 清掉
??? [topView removeFromSuperview];
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark UIimageView
- (void)imageView{
?? ?
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark Button
- (void)Button{
??? //通過系統(tǒng)提供的使用可以生成系統(tǒng)提供的按鈕
??? UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
??? //設(shè)置普通狀態(tài)下的按鈕的文本
??? [button setTitle:@"按鈕" forState:UIControlStateNormal];
??? //設(shè)置文本的顏色,狀態(tài)為Normal
??? [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
??? //高亮狀態(tài)下的文本的顏色
??? [button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
??? //使用[UIImage imageNamed:@""] 通過指定圖片名稱的方式來生成一個UIImage
??? //@2x.png
??? //首先UIImage imageNamed如果沒指定圖片的后綴,默認(rèn)格式png
??? //@2x 意思是2倍像素
??? //imageNamed :文件名,首先檢查是否為高清屏(視網(wǎng)膜屏),如果是就找文件
??? //文件名@2x.png,如果沒有對應(yīng)的@2x的圖片,就使用指定的文件
??? UIImage *imageNormal = [UIImage imageNamed:@"bgCommon"];
??? UIImage *imageHightLight = [UIImage imageNamed:@"bgSelected"];
?? ?
??? //給button設(shè)置背景圖片,normal狀態(tài)下
??? //注意:button會對圖片根據(jù)button的區(qū)域大小進(jìn)行拉伸,如果二者的寬高比不一致圖片可能變形
??? [button setBackgroundImage:imageNormal forState:UIControlStateNormal];
?? ?
??? //指定button在highlight模式下的背景圖片
??? [button setBackgroundImage:imageHightLight forState:UIControlStateHighlighted];
??? //當(dāng)指定的事件(Event)發(fā)生時,調(diào)用target的selector
?? ?
??? //UIControlEventTouchDown 一旦按鈕被按下就觸發(fā)的buttonClickDown
??? [button addTarget:self action:@selector(buttonClickDown:) forControlEvents:UIControlEventTouchDown];
?? ?
??? //UIControlEventTouchUpInside :當(dāng)手指按下后開始起來,inside意思是手指在UIButton的區(qū)域范圍只你
??? //當(dāng)button的事件UIControlEventTouchUpInside發(fā)生時,調(diào)用self 的buttonClick的方法
??? [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark View
- (void)Lable{
??? UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 20, 200, 50)];
??? label.backgroundColor = [UIColor greenColor];
?? ?
??? //指定UILabel顯示的文本
??? label.text = @"Hello world";
?? ?
??? //指定字體顏色
??? label.textColor = [UIColor redColor];
?? ?
??? //設(shè)置字體大小,默認(rèn)字體大小是17
??? label.font = [UIFont systemFontOfSize:30];
?? ?
??? //指定字體
??? //label.font = [UIFont fo];
??? //指定字體的左右對齊方式
??? //NSTextAlignmentLeft??? 靠左 默認(rèn)
??? //NSTextAlignmentCenter? 居中
??? //NSTextAlignmentRight?? 靠右
??? label.textAlignment = NSTextAlignmentCenter;

??? //設(shè)置為0,不限制 lable 行數(shù)
??? label.numberOfLines? = 0;
??? label.text = @"Application windows are expected to have a root view controller at the end of application launch";
?? ?
??? //設(shè)置adjustsFontSizeToFitWidth 的屬性為yes,可以自動調(diào)整字體的大小以適應(yīng)整個的區(qū)域
??? label.adjustsFontSizeToFitWidth = YES;
??? //自動計算要顯示文本需要的區(qū)域大小
??? [label sizeToFit];
??? //如果需要自己控制換行,可以手動添加\n
??? label.text = @"窗前明月光\n疑似地上霜\n舉頭望明月\n低頭思校長";
??? int index = 0;
??? //得到所有的字體家族(一個字體家族包含的字體可能由斜體,粗體,下劃線)
??? //換行的模式,意識根據(jù)什么來進(jìn)行換行
??? //NSLineBreakByWordWrapping 以單詞為單位進(jìn)行換行
??? //NSLineBreakByCharWrapping 以字符為單位進(jìn)行換行
??? //截斷的模式
??? //NSLineBreakByTruncatingHead? //頭部截斷
??? //NSLineBreakByTruncatingTail? //尾部截斷
??? //NSLineBreakByTruncatingMiddle //中間不顯示,使用...代替
??? NSArray *fontFamily = [UIFont familyNames];
??? for (NSString *family in fontFamily) {
?????? ?
??????? //得到字體家族中字體
??????? NSArray *fontArray = [UIFont fontNamesForFamilyName:family];
??????? for (NSString *fontName in fontArray) {
??????????? NSLog(@"%@",fontName);
??????????? UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, index*30 + 20, 200, 30)];
??????????? label.text = fontName;
??????????? label.font = [UIFont fontWithName:fontName size:15];
??????????? [self.window addSubview:label];
??????????? index++;
??????? }
??? }
?? ?

}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark Timer計時器動畫
- (void)Timer{
??? //Time Interval:時間間隔,指定每隔多長時間定時器觸發(fā)一次,單位是秒
??? //target + selector? :當(dāng)定時器觸發(fā)時,調(diào)用的方法
??? //userInfo:是額外的參數(shù),通常設(shè)置為nil
??? //repeats:指定定時器是否一直重復(fù),YES 一直重復(fù) NO:不重復(fù)只觸發(fā)一次
?? ?
??? //timer會對傳入的targe的進(jìn)行保留,(retainCount+1),防止timer觸發(fā)時,target釋放掉,這里對self的retainCount加一
??? //等到timer停掉的時候,才把self的retainCount減一`
??? //定義timer每隔0.1秒觸發(fā)一次
??? _timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];
??? //由于timer對self有保留,dealloc不會被調(diào)用
??? //不要在dealloc中停掉timer
??? //讓定時器失效,真?zhèn)€timer停掉
??? [_timer invalidate];
??? _timer = nil;
??? [UIView animateWithDuration:5 animations:^{
??????? //這里寫動畫的最終的狀態(tài),也就是雪花的最終位置
??????? CGRect endFrame = CGRectMake(endXPos, 667-SNOW_H, SNOW_W, SNOW_H);
??????? snowImageView.frame = endFrame;
??????? snowImageView.alpha = 1.0;
??? } completion:^(BOOL finished) {
??????? //把自己從自己父視圖上刪除
??????? //[snowImageView removeFromSuperview];
?????? ?
??????? //模擬雪花被融化掉的動畫
??????? [UIView animateWithDuration:1 animations:^{
??????????? //alpha指透明度,1完全不透明
??????????? //0 是完全透明
??????????? //對于一個UIView默認(rèn)的alpha值1
??????????? snowImageView.alpha = 0.0;
??????? } completion:^(BOOL finished) {
??????????? //這里正對alpha的動畫已經(jīng)結(jié)束,這是可以把視圖從父視圖上刪除
??????????? [snowImageView removeFromSuperview];
??????? }];
??? }];
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark Timer彈簧動畫
- (void)vidag{
??? for (int index = 0; index < 4; index++) {
??????? UIView *ballView = [self.window viewWithTag:index+BASE_TAG];
?????? ?
??????? //1:duration :動畫的持續(xù)時間,單位秒
??????? //2:delay:動畫延遲多長時間開始 單位秒
??????? //3:Damping 阻尼,取值范圍0~1,一般 < 0.7 晃動比較厲害,為1不會有彈簧效果
??????? //4:Velocity:初始速度,單位 points/秒,一般設(shè)置為0就可以了
??????? //5:options:動畫的一些屬性,設(shè)置速度的曲線,或者翻轉(zhuǎn)的方式
??????? //6:animations :動畫內(nèi)容
??????? //7:complete:動畫結(jié)束時回調(diào)的block
?????? ?
??????? [UIView animateWithDuration:1 delay:0.2*index usingSpringWithDamping:0.6 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
??????????? //??????????? CGPoint center = ballView.center;
??????????? //??????????? CGPoint newCenter = CGPointMake(center.x, center.y - 300);
??????????? //??????????? ballView.center = newCenter;
?????????? ?
??????????? //??????????? struct CGAffineTransform {
??????????? //??????????????? CGFloat a, b, c, d;
??????????? //??????????????? CGFloat tx, ty;
??????????? //??????????? };
?????????? ?
??????????? //ad縮放 bc旋轉(zhuǎn) tx,ty位移,基礎(chǔ)的2D矩陣
??????????? //旋轉(zhuǎn),參數(shù)指定為弧度,M_PI <-> 180
??????????? //CGAffineTransformMakeRotation(<#CGFloat angle#>)
?????????? ?
??????????? //縮放 ,sx:指x軸縮放的比例,sy 在y軸上的縮放比例
??????????? //CGAffineTransformMakeScale(<#CGFloat sx#>, <#CGFloat sy#>)
??????????? //平移 tx:在x軸上平移? ty 是在y上平移
??????????? //CGAffineTransformMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>)
?????????? ?
??????????? //指定在y軸上 平移
??????????? ballView.transform = CGAffineTransformMakeTranslation(0, -400);
?????????? ?
??????? } completion:^(BOOL finished) {
?????????? ?
??????? }];
??? }
??? for (int index = 0; index < 4; index++) {
??????? UIView *ballView = [self.window viewWithTag:index+BASE_TAG];
?????? ?
??????? [UIView animateWithDuration:1 delay:0.2*index usingSpringWithDamping:0.6 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
??????????? //??????????? CGPoint center = ballView.center;
??????????? //??????????? CGPoint newCenter = CGPointMake(center.x, center.y + 300);
??????????? //??????????? ballView.center = newCenter;
?????????? ?
??????????? //CGAffineTransformIdentity 指定一個矩陣,
??????????? //讓你的view回到最原始的狀態(tài),沒有縮放,沒有旋轉(zhuǎn),沒有平移
??????????? ballView.transform = CGAffineTransformIdentity;
??????? } completion:^(BOOL finished) {
?????????? ?
??????? }];
??? }
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark Notification 通知中心
- (void)notification{
??? _boy1 = [[Boy alloc]init];
?? ?
??? //把boy添加或注冊到通知中心,關(guān)注的事件是name中標(biāo)示的字符串
??? //當(dāng)其他對象發(fā)布通知時,通知中心中關(guān)注次事件的對象都會得到通知
??? //自動調(diào)用selector方法,即[boy findFriend:]
?? ?
??? //注意:通知中心不會把你注冊對象保留,當(dāng)boy對象釋放的時候,一定要把自己從通知中心中移除
??? //通知中心:不會對你添加的對象進(jìn)行比較,可能存在一個對象多次添加到通知中心的情況,添加幾次就會調(diào)用幾次
?? ?
??? //最有一個參數(shù)object:nil? 不管誰發(fā)送的findFriendNotification 通知自己都會接受
??? //如果object,非nil,指定為一個對象,意思是只關(guān)注該對象發(fā)送的通知
?? ?
??? //為了避免多次注冊到通知中心,先把_boy1從通知中心中移除,然后再添加
??? [[NSNotificationCenter defaultCenter] removeObserver:_boy1];
??? [[NSNotificationCenter defaultCenter] addObserver:_boy1 selector:@selector(findFriend:) name:@"findFriendNotification" object:nil];

??? //通知傳值一般寫法
??? //發(fā)通知方:
??? //postNotificationName:通知的名字 object:發(fā)通知的人,一般為 self? userInfo:要發(fā)送的信息是個字典(也就是要傳的值)
??? [NSNotificationCenter defaultCenter]postNotificationName:<#(NSString *)#> object:<#(id)#> userInfo:<#(NSDictionary *)#>];
??? //接收方:
??? //addObserver: 注冊人一般為 self select:收到通知后調(diào)用的方法;name:為通知名,要與發(fā)通知的名字一樣 object:后面寫就收誰的通知(即發(fā)通知人的名字),寫 nil意思是,只要通知名一樣都接收
??? [NSNotificationCenter defaultCenter]addObserver:<#(id)#> selector:@selector(resiveNotification:) name:<#(NSString *)#> object:<#(id)#>];
}
??? //調(diào)用一下方法來得到傳過來的值用字典接收
- (void)resiveNotification:(NSNotification*)nitification{
??????? NSDictionary *dic =[nitification userInfo];
??? }
??? //要注意,必須先注冊過才能收到通知,對于平行頁面,如 tabBar 里的各個界面用通知傳值,后面的界面還沒有生成,也就沒有注冊,可以把注冊方法寫到 init 中,可以實現(xiàn),事先注冊,可以直接得到傳值

//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark TextField 輸入框
- (void)TextField{
??? UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(85,20, 200, 50)];
??? //設(shè)置邊框類型
//??? UITextBorderStyleNone,
//??? UITextBorderStyleLine,
//??? UITextBorderStyleBezel,
//??? UITextBorderStyleRoundedRect
??? textField.borderStyle = UITextBorderStyleRoundedRect;
??? //暗文
??? textField.secureTextEntry = YES;
?? ?
??? //設(shè)置底部背景,通常和邊框類型為None的一起使用,對于圓角類型的沒有效果
??? textField.background = [UIImage imageNamed:@"bg.png"];
?? ?
??? //placeholder 占位符,開始編輯后消失,主要起到提示的作用,設(shè)置后灰色顯示提示
??? textField.placeholder = @"請輸入";
?? ?
??? //編輯后是否顯示編輯的刪除標(biāo)識,可以把文本一次性的刪除
??? //
??? //UITextFieldViewModeNever,?????????? 永不顯示
??? //UITextFieldViewModeWhileEditing,??? 當(dāng)編輯的時候顯示
??? //UITextFieldViewModeUnlessEditing,?? 當(dāng)不編輯的時候顯示
??? //UITextFieldViewModeAlways?????????? 一直顯示
??? textField.clearButtonMode = UITextFieldViewModeWhileEditing;
?? ?
??? //橫向居中顯示
??? textField.textAlignment = NSTextAlignmentCenter;
?? ?
??? //調(diào)整文本垂直方向靠上,居中,靠下
??? //textField.contentVerticalAlignment
?? ?
??? //是指編輯框左邊的view和右邊的view
??? UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"qq.png"]];
??? imageView.frame = CGRectMake(0, 0, 30, 30);
??? textField.leftView = imageView;
??? //leftViewMode 顯示的模式
??? textField.leftViewMode = UITextFieldViewModeAlways;
?? ?
??? textField.rightView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"test.png"]];
??? textField.rightViewMode = UITextFieldViewModeAlways;
?? ?
??? //當(dāng)再次編輯時,是否把上次編輯的內(nèi)容清掉
??? textField.clearsOnBeginEditing = YES;
?? ?
??? //鍵盤類型
??? textField.keyboardType = UIKeyboardTypeDefault;
?? ?
??? //設(shè)置return的類型,
??? textField.returnKeyType = UIReturnKeyEmergencyCall;
?? ?
??? //設(shè)置textField的代理,這樣再開始編輯。
??? //結(jié)束編輯調(diào)用相應(yīng)的代理方法
??? textField.delegate = self;
?? ?
??? //是否自動糾錯
??? textField.autocorrectionType = NO;
?? ?
??? //讓輸入框成為第一響應(yīng)者,這樣鍵盤自動彈出
??? //所謂第一響應(yīng)者就是鍵盤的輸入和該控件結(jié)合再一起
??? [textField becomeFirstResponder];
?? ?
??? //要讓鍵盤消失,就是讓textField 不是第一相應(yīng)者,這樣鍵盤就會消失
??? [textField resignFirstResponder];
}
??? //-------------------------------------------------------------------------------------------
??? //UITextFiel的代理方法
??? - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
??? {
??????? //編輯框是否可以開始編輯,返回NO,編輯框沒法編輯
??????? return YES;
??? }
?? ?
??? - (void)textFieldDidBeginEditing:(UITextField *)textField;?????????? // became first responder
??? {
??????? _currentEditingTextField = textField;
??????? NSLog(@"編輯框開始編輯");
??? }
?? ?
??? - (BOOL)textFieldShouldEndEditing:(UITextField *)textField
??? {
??????? //textField是否應(yīng)該結(jié)束編輯,如果為NO,無法結(jié)束編輯
??????? return YES;
??? }
?? ?
??? - (void)textFieldDidEndEditing:(UITextField *)textField;???????????? {
??????? NSLog(@"已經(jīng)結(jié)束編輯");
??? }
?? ?
??? - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
??? {
??????? //是否應(yīng)該接受輸入的string,返回的時YES表示接受輸入的字符
??????? //NO 表示不接受輸入的字符
??????? //通常使用再輸入驗證上
??????? if([string isEqualToString:@"!"])
??????? {
??????????? //表示輸入0不接受
??????????? return NO;
??????? }
?????? ?
??????? //其他的字符接受
??????? return YES;
??? }
?? ?
??? - (BOOL)textFieldShouldReturn:(UITextField *)textField
??? {
??????? //當(dāng)return鍵按下時調(diào)用的的代理方法
??????? //讓鍵盤消失,調(diào)用resignFirstResponder
??????? //[_currentEditingTextField resignFirstResponder];
??????? [textField resignFirstResponder];
??????? return YES;
??? }
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark 自定義textField鍵盤
- (void)自定義textField{
??? UITextField *textField = [[UITextField alloc]init];
??? //inputView 可以指定一個UIView,充當(dāng)我們的輸入,當(dāng)指定了view后,默認(rèn)鍵盤就不會彈出
??? //customKeyboardView自定義一個 View 作為鍵盤,坐標(biāo)設(shè)為0,0即可;
??? textField.inputView = [self customKeyboardView];
??? //inputAccessoryView設(shè)置自定義鍵盤上面的 bar,返回一個 View 就可以坐標(biāo)設(shè)為0 ,0 。
??? textField.inputAccessoryView = [self customAccessoryView];
??? //----------------------————————————————————————————
??? //也可以創(chuàng)建一個 ToolBar作為自定義鍵盤上面的 Bar 如下
??? UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
??? toolBar.translucent = NO;
??? toolBar.barTintColor = [UIColor orangeColor];
??? //在 toolBar 上添加 item,同時可以直接添加 selector 方法
??? UIBarButtonItem *item1 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(itemClick:)];
??? item1.tag = 1;
??? //把所有 item 添加到 toolBar 上,用一個數(shù)組
??? toolBar.items = @[item,item1,item,item2,item,item3,item,item4,item];
??? //item 調(diào)用 select 可以進(jìn)行鍵盤類型切換
??? //先拿到當(dāng)前編輯的 textField,使其失去第一響應(yīng)者,再設(shè)置自定義鍵盤,然后再設(shè)為第一響應(yīng)者
??? UITextField *textField = [self findFirstResponder];
??? //先拿到當(dāng)前編輯的 textField,使其失去第一響應(yīng)者
??? [textField resignFirstResponder];
?? // 再設(shè)置自定義鍵盤
??? textField.inputView = [self createInputView];
?? // 然后再設(shè)為第一響應(yīng)者
??? [textField becomeFirstResponder];
??? //縮回鍵盤也可以用
??? [self.view endEditing:YES];
?? // use to make the view or any subview that is the first responder resign
}
//---------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark UINavigationController
- (void)UINavigationController {
????? [self automaticallyAdjustsScrollViewInsets];
??? //UINavigationController是一個容器controller,內(nèi)部存放的是UIViewController,內(nèi)部自己維護(hù)一個數(shù)組,顯示的內(nèi)容就是他容器中的UIViewController的內(nèi)容
??? //創(chuàng)建UINavigationController的時候,指定一個根
??? UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:firstVC];

??? //UINavigationController 作為容器controller的本質(zhì)是內(nèi)部維護(hù)了一個數(shù)組,數(shù)組中存放的都是UIViewController
??? //navController.viewControllers
??? //pushViewController 把一個UIViewController推入導(dǎo)航控制器
??? //self.navigationController 可以找到viewcontroller所在的容器
??? //根view通過superview找到自己父視圖類似
?? ?
??? //pushViewController:
??? //1:secondVC 放到了UINavigationController的容器內(nèi)
??? //2:把secondVC.navigationController = 容器
??? //3:把secondVC.view顯示在當(dāng)前的界面上
?? ?
??? [self.navigationController pushViewController:secondVC animated:YES];
??? //popViewControllerAnimated 推出到那個頁面
??????? [self.navigationController popViewControllerAnimated:YES];
??? popViewControllerAnimated:(BOOL)animated; // Returns the popped controller.彈出自己回到上一頁面
??? popToViewController:(UIViewController *)viewController animated:(BOOL)animated; // Pops view controllers until the one specified is on top. Returns the popped controllers.彈出到指定頁面
??? popToRootViewControllerAnimated:(BOOL)animated; // Pops until there's only a single view controller left on the stack. Returns the popped controllers.彈出到跟頁面
??? //UIBarMetricsDefault 人像模式,豎屏幕
??? //一旦使用圖片作為背景,圖片的大小由要求高度 44 (@2 88)> 44會向上拉伸
??? [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"導(dǎo)航背景@2x.png"] forBarMetrics:UIBarMetricsDefault];
?? ?
??? //UIBarMetricsCompact 風(fēng)景模式,也就是橫屏,由于尺寸問題有可能造成圖片平鋪
?? ?
??? //得到原始的圖片
??? UIImage *image? = [UIImage imageNamed:@"navBg.png"];
??? //創(chuàng)建一個可以拉伸的圖片給他
?? ?
??? //UIImageResizingModeTile,???? 平鋪
??? //UIImageResizingModeStretch,? 拉伸
??? image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeStretch];
?? ?
??? [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsCompact];
?? ?
??? //如果給導(dǎo)航欄設(shè)置設(shè)置背景,導(dǎo)航欄默認(rèn)為不透明,坐標(biāo)從導(dǎo)航欄下開始
??? //注意:對于在導(dǎo)航控制器的中UIViewController,默認(rèn)情況下(半透明)他的視圖的坐標(biāo)(0,0)點會被導(dǎo)航欄蓋掉,整個的高度 是狀態(tài)欄的20+導(dǎo)航欄的44 ,一共64個point
?? ?
??? //把導(dǎo)航欄改為不透明
??? self.navigationController.navigationBar.translucent = NO;
?? ?
??? //一旦導(dǎo)航欄變?yōu)椴煌该?#xff0c;視圖的(0,0)點坐標(biāo)是從導(dǎo)航欄先開始
?? ?
??? //修改navigationBar的式樣,會影響到狀態(tài)欄到顯示
??? //UIBarStyleBlack 代表黑色式樣
??? //self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
??? //把導(dǎo)航欄修改為其他顏色
??? self.navigationController.navigationBar.barTintColor = [UIColor yellowColor];
?? ?
??? //這里的tintColor可以設(shè)置回退按鈕的顏色
??? //self.navigationController.navigationBar.tintColor = [UIColor redColor];
?? ?
??? //修改標(biāo)題的顏色,以及字體大小
??? //指定一個字典作為title的屬性,
??? //key NSFontAttributeName 指定自定
??? //key NSForegroundColorAttributeName?? 指定顯示的顏色
??? self.navigationController.navigationBar.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:30],NSForegroundColorAttributeName:[UIColor redColor]};
??? self.title = @"標(biāo)題";
//----------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark 定制NavigationBar
??? //這里不是設(shè)置自身的一個回退按鈕,他是設(shè)置下一個導(dǎo)航進(jìn)來的viewController的回退BarButtonItem
?? ?
??? self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(canleBarItemClick:)];
??? //由于圖片顯示渲染的問題,導(dǎo)致在navigationBar上設(shè)置的圖片顯示有問題
??? UIImage *image = [UIImage imageNamed:@"rightItem.png"];
??? //設(shè)置顯示image時的渲染模式,使用最初的圖片,不需要和背景混合
??? image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
??? //設(shè)置ViewContrller在導(dǎo)航欄上的展示內(nèi)容
??? //每一個UIViewController都有一個navigationItem,由他來設(shè)置自己在naviagitonBar上的展示內(nèi)容
??? //回退按鈕的顯現(xiàn)次序
??? //1:? 如果設(shè)置了leftBarButtonItem,那就顯示我設(shè)置的leftBarButonItem
??? //2:? 如果上一個UIViewContrller設(shè)置backBarButtonItem,那么顯示的就是back
??? //3:? 如果上面沒有設(shè)置,查看上一個UIViewController的title是否設(shè)置如果設(shè)置顯示的是上一個viewController的title
??? //? 3.1 如果上一個title文本比較多,顯示不下,直接就是用系統(tǒng)的Back來顯示
??? //4: 如果說以上都沒有設(shè)置,顯示的是Back,系統(tǒng)默認(rèn)的
?? ?
??? //不想讓狀態(tài)欄顯示,需要重寫該方法
??? - (BOOL)prefersStatusBarHidden
??? {
??????? return NO;
??? }
??? //[UIApplication sharedApplication] 得到當(dāng)前應(yīng)用程序的對象
?? ?
??? //全局設(shè)置狀態(tài)欄的式樣,同時在info.plist中設(shè)置View Controller-base status Bar appearence 設(shè)置為NO
???? [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
??? //添加tap手勢
??? UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapEvent:)];
??? tap.delegate = self;
??? //添加一個 BOOL型成員變量_isShow;
??? [self.view addGestureRecognizer:tap];
??? - (void)handleTapEvent:(UITapGestureRecognizer*)gesture
??? {
??????? _isShow = !_isShow;
?????? ?
??????? //讓導(dǎo)航欄隱藏
??????? //[self.navigationController setNavigationBarHidden:_isShow animated:NO];
?????? ?
??????? //手動讓狀態(tài)欄刷新
??????? [self setNeedsStatusBarAppearanceUpdate];
??? }
??? - (BOOL)prefersStatusBarHidden
??? {
??????? return _isShow;
??? }

事件響應(yīng)鏈,關(guān)鍵時候能幫很大的忙


//事件響應(yīng)鏈:
//1:自己處理不會再傳遞事件的響應(yīng),如果自己不處理交給自己的父視圖處理
//2:父視圖不處理-》交給父視圖-》視圖控制器的view-》視圖控制器->UIWindow->UIApplication->Appdelegate->丟棄
//只要觸摸屏幕就會調(diào)用下列方法
//這兩種方式都可以讓事件傳遞下去,優(yōu)先使用super的方式傳遞事件
//super 不僅可以讓事件進(jìn)行傳遞下去,還會做更多的操作
//直接 nextResponder 有可能造成消息丟失
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
??? //開始觸摸
??? NSLog(@"ViewController:touchesBegan");
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
??? //觸摸在移動
??? NSLog(@"ViewController:touchesMoved");
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
??? //觸摸結(jié)束
??? NSLog(@"ViewController:touchesEnded");
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{
??? //觸摸取消,譬如來電時會結(jié)束當(dāng)前的一個觸摸
??? NSLog(@"ViewController:touchesCancelled");
}
//----------------------------------------------------------------------------------------------------
#pragma mark -------------------------------------
#pragma mark UITabBarController
- (void)UITabBarController{
//==============================================================
??? 使用系統(tǒng)的 tabBar 來生成
??? //UITabBarControler也是一個容器controller,本身的view不顯示,顯示自己孩子的viewController
??? //里面維護(hù)一個數(shù)組,viewControllers包含所有的子viewController
??? //通常TabBarController包含navigtionControoller
??? FirstViewController *firstViewController = [[FirstViewController alloc]init];
??? UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:firstViewController];
??? //使用自定義TabBarItem,title標(biāo)題
??? //在沒有指定選中圖片的時候,默認(rèn)使用藍(lán)色進(jìn)行選中時候的著色
??? //firstViewController.tabBarItem.title?? //標(biāo)題
??? //firstViewController.tabBarItem.image?? //未選中時的圖片
??? //firstViewController.tabBarItem.selectedImage //選中時的圖片
?? // item 可以自己定義 title,image
??? UIImage *image = [UIImage imageNamed:@"tab_c1.png"];
??? //渲染時不要混合,使用最原始的圖片輸出
??? image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
??? UITabBarItem *item11 = [[UITabBarItem alloc]initWithTitle:@"頁面1" image:[UIImage imageNamed:@"tab_0.png"] selectedImage:image];
?? ?
??? firstViewController.tabBarItem = item11;
??? UITabBarController *tabBarController = [[UITabBarController alloc]init];
??? //UITabBarController,維護(hù)一個數(shù)組,把生成的 viewController,加進(jìn)去就可以了
??? //也可以 創(chuàng)建一個UINavigationController,用initWithRootViewController:firstViewController把firstViewController設(shè)為UINavigationController的跟頁面,把UINavigationController生成的對象作為,TabBar 的一個子頁面
??? tabBarController.viewControllers = @[firstViewController,secondViewController,thirdViewController,fourViewController,fiveViewController,sixViewController];
??? //可以制定tintColor給tabbarItem進(jìn)行選中時的著色
??? tabBarController.tabBar.tintColor = [UIColor redColor];
??? //設(shè)置 tabBar 的顏色
??? tabBarController.tabBar.barTintColor = [UIColor purpleColor];
??? //設(shè)置tabBar的背景圖片
????? [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_black_bg"]];
??? //如果子viewController個數(shù)超過5個,UITabBarController自動幫我們聲稱more的導(dǎo)航控制器,把剩余的tabBarItem放到more對應(yīng)的視圖控制器之內(nèi)
??? //設(shè)置tabBar上文字的顏色
??? [tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor darkGrayColor]} forState:UIControlStateNormal];
??? [tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateSelected];
}

?


#pragma mark UITabBar的代理方法
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
??? //紀(jì)錄當(dāng)前選中的是哪一個viewController
??? //1:獲取viewController的次序
??? //2:保存到沙盒下
??? //3:從沙盒目錄中讀取
??? //4:啟動后重新設(shè)置選中的次序
??? NSLog(@"--->%ld",tabBarController.selectedIndex);
?? ?
??? //得到我的沙盒目錄 sandbox
?? ?
??? NSString *homePath = NSHomeDirectory();
??? NSLog(@"%@",homePath);
?? ?
??? //NSUserDefaults? 是使用本地化存儲的方式之一,
??? //實現(xiàn)的原理是在沙盒目錄下,保存的一個plist文件
??? //只適合保存比較少量數(shù)據(jù),譬如用戶名,密碼,開機歡迎界面是否顯示的標(biāo)志
??? [[NSUserDefaults standardUserDefaults] setInteger:tabBarController.selectedIndex forKey:@"currentSelectIndex"];
??? //注意要調(diào)用同步方法,由于NSUserDefault不會把數(shù)據(jù)馬上寫到本地文件
??? //會有延遲,調(diào)用synchronize 同步方法,會讓數(shù)據(jù)馬上同步到本地文件
??? [[NSUserDefaults standardUserDefaults] synchronize];
?? ?
??? //把key對應(yīng)的值讀取出來
??? [[NSUserDefaults standardUserDefaults] integerForKey:@"currentSelectIndex"];
}

?


#pragma mark -------------------------------------
#pragma mark 自定義 TabBar
?- (void)customTabBar
??? {
??????? //先把自己的tabBar欄隱藏
??????? [self.tabBar setHidden:YES];
?????? ?
??????? //使用UIImageView充當(dāng)我們的背景
??????? UIImageView *backgroundView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 667-49, 375, 49)];
??????? backgroundView.image = [UIImage imageNamed:@"tab_black_bg@2x.png"];
??????? backgroundView.userInteractionEnabled = YES;
??????? [self.view addSubview:backgroundView];
?????? ?
??????? NSArray *titleArray = @[@"歷史",@"收藏",@"分享",@"設(shè)置"];
?????? ?
??????? CGFloat buttonWidth = 375/self.viewControllers.count;
??????? CGFloat buttonHeight = 49;
??????? for (int index = 0; index < self.viewControllers.count;index++) {
??????????? UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
??????????? [button setTitle:[titleArray objectAtIndex:index] forState:UIControlStateNormal];
??????????? [button setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
??????????? [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
??????????? NSString *normalImageName = [NSString stringWithFormat:@"tab_%d",index];
??????????? NSString *selectImageName = [NSString stringWithFormat:@"tab_c%d",index];
?????????? ?
??????????? //設(shè)置button上的字體的大小
??????????? button.titleLabel.font = [UIFont systemFontOfSize:12];
?????????? ?
??????????? [button setImage:[UIImage imageNamed:normalImageName] forState:UIControlStateNormal];
??????????? [button setImage:[UIImage imageNamed:selectImageName] forState:UIControlStateSelected];
??????????? button.frame = CGRectMake(index*buttonWidth, 0, buttonWidth, buttonHeight);
?????????? ?
??????????? //對于button可以設(shè)置他image的內(nèi)邊距,也可以設(shè)置title的內(nèi)邊距,來調(diào)整button上文字和圖片的位置
??????????? //button.imageEdgeInsets 設(shè)置圖片的內(nèi)邊距
??????????? //button.titleEdgeInsets 設(shè)置title的內(nèi)邊距
??????????? button.imageEdgeInsets = UIEdgeInsetsMake(1, 15, 15, 0);
??????????? button.titleEdgeInsets = UIEdgeInsetsMake(30,-25, 0, 0);
?????????? ?
??????????? button.tag = 100 + index;
??????????? [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
?????????? ?
??????????? //設(shè)置初始顯示時選中第一個按鈕
??????????? if (index == 0) {
??????????????? button.selected = YES;
??????????? }
?????????? ?
??????????? [backgroundView addSubview:button];
??????? }
??? }

?


- (void)buttonClick:(UIButton*)button
{
??? //重置button的狀態(tài)
??? [self resetButtonStatus];
??? NSInteger index = button.tag - 100;
?? ?
??? //讓button處于select狀態(tài)
??? button.selected = YES;
?? ?
??? //修改UITabBarControler的selectedIndex ,會導(dǎo)致切換到對應(yīng)的頁面
??? self.selectedIndex = index;
}

?


- (void)resetButtonStatus
{
??? for (int index = 0; index < self.viewControllers.count; index++) {
??????? UIButton *button = (UIButton*)[self.view viewWithTag:100+index];
??????? button.selected = NO;
??? }
}

?


//======================================================================================================
#pragma mark -------------------------------------
#pragma mark UITextView多行編輯文本框和警告框
- (void)testUITextView
{
??? // UITextView 是多行編輯的文本框
??? UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(20, 80, 150, 80)];
??? //背景色
??? textView.backgroundColor = [UIColor grayColor];
??? //字體
??? textView.font = [UIFont systemFontOfSize:20];
??? //文字顏色
??? textView.textColor = [UIColor greenColor];
?? ?
??? //設(shè)置textView的代理
??? textView.delegate = self;
??? //自適應(yīng)大小時設(shè)置為 no 不會跳動
??? //沒有自適應(yīng)大小時,設(shè)置為 yes 可以超過本身行數(shù)輸入,可以滑動瀏覽
??? textView.scrollEnabled = NO;
?? ?
??? //使用它定制鍵盤
??? //textView.inputView

}


#pragma mark UITextView代理方法
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
??? NSLog(@"是否開始編輯");
??? return YES;
}


- (BOOL)textViewShouldEndEditing:(UITextView *)textView
{
??? NSLog(@"是否應(yīng)該");
??? return YES;
}


- (void)textViewDidBeginEditing:(UITextView *)textView
{
??? NSLog(@"應(yīng)開始編輯");
}


- (void)textViewDidEndEditing:(UITextView *)textView
{
??? NSLog(@"已經(jīng)結(jié)束編輯");
}


- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
??? //指示輸入的字符是否應(yīng)該接收,這里可以有自己的判斷邏輯
??? if ([text isEqualToString:@"\n"]) {
??????? //\n代表回車
??????? //第一響應(yīng)者的概念跟UITextField一樣
??????? [textView resignFirstResponder];
??????? return NO;
??? }
??? return YES;
}


- (void)textViewDidChange:(UITextView *)textView
{
??? //輸入框的文本發(fā)生了變化
??? NSLog(@"%@",textView.text);
??? //[textView sizeToFit];
??? CGFloat textViewWidth = textView.frame.size.width;
??? //文本框隨文字多少大小變化
??? CGSize newSize = [textView sizeThatFits:CGSizeMake(textViewWidth, MAXFLOAT)];
??? CGRect newFrame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textViewWidth, newSize.height);
?? ?
??? textView.frame = newFrame;
}

?


- (void)testUIActionSheet
{
??? UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"標(biāo)題" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"other" otherButtonTitles:@"A",@"B",@"C", nil];
??? [actionSheet showInView:self.view];
}

?


- (void)testUIAlertView
{
??? //警告框,通常使用在提示用戶,或者讓用戶做出選擇
??? //對于otherButtonTitles,如果不需要,直接寫為nil
??? UIAlertView *alterView = [[UIAlertView alloc]initWithTitle:@"標(biāo)題" message:@"警告內(nèi)容" delegate:self cancelButtonTitle:@"cancle" otherButtonTitles:@"A",@"B",@"C", nil];
??? [alterView show];
?? ?
??? //??? UIAlertView *alterView = [[UIAlertView alloc]initWithTitle:@"警告" message:@"是否繼續(xù)操作" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
??? //??? [alterView show];
}


#pragma mark UIActionSheet代理方法
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{??? //按鈕序號從上到下0——>
??? //還是要根據(jù)buttonIndex來決定是哪個按鈕被選中
??? NSLog(@"%ld",buttonIndex);
}

?


- (void)actionSheetCancel:(UIActionSheet *)actionSheet{
?? ?
}


- (void)willPresentActionSheet:(UIActionSheet *)actionSheet{
??? // before animation and showing view
}


- (void)didPresentActionSheet:(UIActionSheet *)actionSheet{
??? // after animation
}

- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex{
??? // before animation and hiding view
}


- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{
??? // after animation
}


#pragma mark UIAlertView代理方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
??? //注意,cancle對應(yīng)的button,他的index 是0,其他的根據(jù)次序順序排列
??? //這樣我們根據(jù)buttonIndex來決定響應(yīng)了哪一個按鈕
??? NSLog(@"%ld",buttonIndex);
}


- (void)alertViewCancel:(UIAlertView *)alertView{
??? //警告框取消
}


- (void)willPresentAlertView:(UIAlertView *)alertView{
??? // before animation and showing view
}


- (void)didPresentAlertView:(UIAlertView *)alertView{
??? // after animation
}


- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex{
??? // before animation and hiding view
}


- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
??? // after animation
}


//======================================================================================================
#pragma mark -------------------------------------
#pragma mark UIScrollView滾動視圖
- (void)UIScrollView{
??? CGRect rect = self.view.frame;
??? CGRect scrollViewFrame = CGRectInset(rect, 50, 100);
??? UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:scrollViewFrame];
??? scrollView.backgroundColor = [UIColor redColor];
??? scrollView.tag = 10;
??? //得到文件的路徑
??? NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"3" ofType:@"jpg"];
??? UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
??? //通過image.size 可以得到圖片的大小,使用 image 初始化 UIImageView,直接使用圖片的寬高作為 UIImage 的寬高
??? UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
??? [scrollView addSubview:imageView];
??? //contentSize 是指定scollView能顯示的內(nèi)容的大小
??? //如果不設(shè)置contentSize的大小默認(rèn)contentSize的大小就是scrollView的view的frame的大小
??? scrollView.contentSize = CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height);
??????? //scrollView是否有回彈效果
??? scrollView.bounces = NO;
??? //是否顯示水平滾動條
??? scrollView.showsHorizontalScrollIndicator = NO;
??? //是否顯示垂直滾動條
??? scrollView.showsVerticalScrollIndicator;
??? //重點:
??? //設(shè)置scrollView的內(nèi)容偏移量
??? //cotentOffset的內(nèi)容視圖的左上角到scrollView左上角的一個偏移量
??? //contentOffset.x? x軸的偏移量
??? //contentOffset.y? y軸的偏移量
??? //計算時以內(nèi)容視圖的左上角為基準(zhǔn)
??? //contentOffset默認(rèn)從(0,0)開始
??? scrollView.contentOffset = CGPointMake(100, 0);
??? //設(shè)置scorllView的代理,當(dāng)滾動事件事件發(fā)生時,相應(yīng)的代理方法被調(diào)用
??? scrollView.delegate = self;
??? //設(shè)置scollView以分頁的效果顯示
??? scrollView.pagingEnabled = YES;
??? //minimumZoomScale 設(shè)置最小的放大系數(shù)
??? scrollView.minimumZoomScale = 1.0;
??? //設(shè)置最大的放大系數(shù)
??? scrollView.maximumZoomScale = 2.0;
??? //添加雙擊事件進(jìn)行縮放
??? UITapGestureRecognizer *tapGestrue = [[UITapGestureRecognizer alloc]initWithTarget:self? action:@selector(handleTapEvent:)];
??? tapGestrue.numberOfTapsRequired = 2;
??? [scrollView addGestureRecognizer:tapGestrue];
?? ?
??? [self.view addSubview:scrollView];
}


- (void)handleTapEvent:(UITapGestureRecognizer*)gesture
{
??? static BOOL isZooming = NO;
??? UIScrollView *scrollView = (UIScrollView*)[self.view viewWithTag:100];
??? if (isZooming) {
??????? [scrollView setZoomScale:1.0 animated:YES];
??? }else{
??????? //scrollView.zoomScale = 2.0;
??????? [scrollView setZoomScale:2.0 animated:YES];
??? }
??? isZooming = !isZooming;
}

?


#pragma mark UIScrollViewDelegate
//只要scrollView滾動就會調(diào)用該方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
??? //由于該方法在視圖滾動中一直調(diào)用,所以不要在這里做耗時的計算
??? NSLog(@"視圖滾動");
}


- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
??? NSLog(@"滾動視圖內(nèi)容即將被拖動");
}


//decelerate 指定是否有減速動作
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
??? NSLog(@"滾動視圖的內(nèi)容已經(jīng)結(jié)束拖動");
}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
??? NSLog(@"即將開始減速");
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
??? NSLog(@"減速結(jié)束,內(nèi)容視圖停止");
}


//指定在scollView上哪一個視圖被縮放
-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
??? return [scrollView.subviews objectAtIndex:0];
}
- (void)createPageControl
{
??? _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];
??? _pageControl.center = CGPointMake(_scrollView.center.x,_scrollView.center.y+_scrollView.bounds.size.height/2-20);
??? //指定pageController有多少頁,由他決定圓點的個數(shù)
??? _pageControl.numberOfPages = 6;
?? ?
??? //pageIndicatorTintColor 圓點的顏色
??? _pageControl.pageIndicatorTintColor = [UIColor blueColor];
?? ?
??? //currentPageIndicatorTintColor? 當(dāng)前頁的顏色
??? _pageControl.currentPageIndicatorTintColor = [UIColor redColor];
?? ?
??? //_pageControl.userInteractionEnabled = NO;
??? //給pageControl 綁定valueChanged事件
??? [_pageControl addTarget:self action:@selector(pageControllChanged:) forControlEvents:UIControlEventValueChanged];
??? [self.view addSubview:_pageControl];
}

- (void)pageControllChanged:(UIPageControl*)pageControl
{
??? //首先得到pageControl目前顯示的是哪一頁
??? NSInteger currentPage = pageControl.currentPage;
?? ?
??? CGPoint offset = CGPointMake(currentPage*_scrollView.bounds.size.width, 0);
??? //需要使用代碼的方式滾動到相應(yīng)的位置
??? [_scrollView setContentOffset:offset animated:YES];
}

#pragma mark -
#pragma mark UIScrollViewDelegate
- (void)createContentImageViews
{
??? for (int index = 1; index <= 6; index++) {
??????? NSString *imageName = [NSString stringWithFormat:@"%d.png",index];
??????? UIImage *image = [UIImage imageNamed:imageName];
??????? UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake((index-1)*_scrollView.bounds.size.width, 0, _scrollView.bounds.size.width, _scrollView.bounds.size.height)];
??????? imageView.image = image;
??????? [_scrollView addSubview:imageView];
??? }
?? ?
??? //這里設(shè)置以下contentSize的大小,指定scrollView顯示內(nèi)容的區(qū)域大小
??? _scrollView.contentSize = CGSizeMake(6*_scrollView.bounds.size.width, _scrollView.bounds.size.height);
}


//只要設(shè)置了scrollView的分頁顯示,當(dāng)手動(使用手指)滾動結(jié)束后,該代理方法會被調(diào)用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
??? NSLog(@"scrollViewDidEndDecelerating");
??? //得到當(dāng)前的偏移
??? CGPoint offset = scrollView.contentOffset;
??? NSLog(@"offset x = %f y = %f",offset.x,offset.y);
??? //使用偏移量計算頁碼
??? NSInteger pageNumber = offset.x/scrollView.bounds.size.width;
??? NSLog(@"pageNumber = %ld",pageNumber);
?? ?
??? //設(shè)置pageController的當(dāng)前頁,對應(yīng)的原點高亮顯示
??? _pageControl.currentPage = pageNumber;
}


//該代理是使用代碼的方式設(shè)置contentOffset后的代理
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
??? NSLog(@"scrollViewDidEndScrollingAnimation");
}

?

轉(zhuǎn)載于:https://www.cnblogs.com/Lvfengxian/p/4902666.html

總結(jié)

以上是生活随笔為你收集整理的温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美天堂久久 | 狠狠色综合欧美激情 | 久久国产精品视频免费看 | 日韩专区在线观看 | 成人香蕉视频 | 国产午夜剧场 | 免费在线国产黄色 | 精品一区二区三区在线播放 | 免费人人干 | 天天av资源 | 免费在线一区二区 | zzijzzij亚洲日本少妇熟睡 | 综合网伊人 | 99久久久久久 | 色香蕉网 | 久久久久久免费毛片精品 | 日韩精品专区在线影院重磅 | 亚洲综合日韩在线 | 免费观看久久 | 嫩嫩影院理论片 | 欧美色图30p | 国产一区二区三区高清播放 | 91完整版观看 | 99热这里有精品 | 超碰在线94| 二区视频在线 | 99这里只有久久精品视频 | 天天干天天拍天天操天天拍 | 亚洲深夜影院 | 国产亚洲精品久久久久久久久久久久 | 中文理论片 | 国产精品18毛片一区二区 | 免费观看一级一片 | 欧美日韩精品在线免费观看 | 国产精品18videosex性欧美 | 亚洲午夜精品久久久久久久久 | 天天草天天操 | 九九99视频 | 欧美日韩国产区 | 91中文字幕在线视频 | 成人欧美一区二区三区在线观看 | 免费不卡中文字幕视频 | 精品一区中文字幕 | 丁香婷婷电影 | 成人免费在线观看电影 | 色资源中文字幕 | 99re久久精品国产 | 五月婷亚洲 | 欧美激情精品久久久久久免费印度 | 中文国产成人精品久久一 | 欧美激情综合色综合啪啪五月 | 国产资源中文字幕 | 久久综合操 | 久久99精品久久久久久秒播蜜臀 | 91精品综合在线观看 | 婷婷色中文网 | 综合天堂av久久久久久久 | 中文字幕观看视频 | 久久成人国产 | 国产婷婷vvvv激情久 | www久| 成人av观看| 免费久久久 | 福利区在线观看 | 日韩欧美在线观看一区二区 | 碰碰影院 | 国产亚洲日本 | 超碰国产在线 | 91福利区一区二区三区 | 一区二区三区 亚洲 | 99精品区 | 中文字幕一区三区 | 96看片 | 色开心| 久草在线最新 | 在线亚洲激情 | 久久tv| zzijzzij亚洲日本少妇熟睡 | 日日日爽爽爽 | 亚洲精品国精品久久99热一 | 黄色软件大全网站 | 亚洲资源在线网 | 视频在线观看91 | 激情综合中文娱乐网 | 91丨九色丨蝌蚪丰满 | 免费久久精品视频 | 免费网址你懂的 | 91精品久久久久久综合乱菊 | 久久久久亚洲精品中文字幕 | 成 人 黄 色 片 在线播放 | 美女黄频在线观看 | 午夜精品99久久免费 | 日三级在线| 久久综合狠狠综合久久综合88 | 欧美午夜视频在线 | 在线观看黄色大片 | 91爱爱视频 | 国产亚洲va综合人人澡精品 | 久操中文字幕在线观看 | 亚洲欧美怡红院 | 91夜夜夜 | 国产精品永久免费在线 | 91秒拍国产福利一区 | 国产亚洲精品成人av久久影院 | 91在线免费播放 | 亚洲免费观看视频 | 久久视| 日韩高清毛片 | 操操操com | 久久综合免费视频影院 | 九九视频免费在线观看 | 国产精品毛片网 | 狠狠操欧美 | 久久99国产精品久久99 | 精品一区二区三区香蕉蜜桃 | 一区二区三区日韩视频在线观看 | 国产精品影音先锋 | 日韩成人免费观看 | 综合精品在线 | 成人九九视频 | 99在线视频播放 | 欧美精品首页 | av永久网址 | 成年人在线观看网站 | 国产成人高清 | 青青河边草观看完整版高清 | 国产精品资源在线 | 久热久草在线 | 狠狠干天天 | 久久精品欧美一区 | 国产中文字幕在线 | 男女拍拍免费视频 | 夜夜操综合网 | 天天综合导航 | 中文av不卡 | 亚洲 欧洲av | 色婷婷九月 | 日韩久久久久久久 | 日本视频高清 | 久久国产精品视频观看 | 97超碰在线资源 | 99精品国自产在线 | 97超碰人人看 | www.久久久com | 精品在线亚洲视频 | 黄色小网站在线观看 | 天天操狠狠操夜夜操 | 成人在线一区二区三区 | 99久久精品国产系列 | 国产成人亚洲精品自产在线 | 日韩中文字幕免费看 | 99久久激情视频 | 天海翼一区二区三区免费 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 综合网伊人 | 日韩欧美电影 | 天天干天天操天天拍 | 摸bbb搡bbb搡bbbb | 69国产精品成人在线播放 | 久久免费国产精品1 | 日韩激情在线视频 | 久久免费视频一区 | 国内精品久久久久影院日本资源 | 欧美最猛性xxxxx免费 | 丝袜av网站 | 日日狠狠 | av电影不卡 | 国产精品系列在线观看 | 国产精品自在线拍国产 | 欧美日韩三级在线观看 | 国产黄色播放 | 免费观看性生交 | 国产欧美久久久精品影院 | 欧美国产日韩在线观看 | 在线观看成年人 | 精品久久久影院 | 婷婷爱五月天 | 日色在线视频 | 在线国产黄色 | 国产精品久久久久亚洲影视 | 久久欧美视频 | 色婷婷综合久久久中文字幕 | 成年免费在线视频 | 国产91aaa| 亚洲人人av | 91av视频在线免费观看 | 超碰人人av | 91av在线免费 | www.少妇 | 欧美成人h版 | av丝袜美腿| 国产 日韩 欧美 自拍 | 日韩在线观看第一页 | 视频一区二区国产 | 国产女人免费看a级丨片 | 久久狠狠干| 久久99精品视频 | 亚洲综合色丁香婷婷六月图片 | 精品国产乱码久久久久 | 在线99视频 | 最近最新最好看中文视频 | 亚洲在线网址 | 国产免费观看视频 | 99精品国产aⅴ | 91中文字幕网 | 亚洲欧美激情精品一区二区 | 亚洲综合小说 | 精品99免费 | 亚洲韩国一区二区三区 | 久久久国产精品人人片99精片欧美一 | 黄色大片国产 | 国产va在线观看免费 | 久久av一区二区三区亚洲 | 黄色免费网战 | 丝袜av一区| 国产欧美日韩一区 | 九九免费在线观看 | 国产精品久久三 | 国产精品成人一区二区 | 国产大尺度视频 | av中文在线播放 | 99热官网 | 国产在线久久久 | av观看在线观看 | 激情五月视频 | 91高清视频免费 | 国产97在线播放 | 国产一级片不卡 | 国产精品免费视频一区二区 | 91在线porny国产在线看 | 欧美 亚洲 另类 激情 另类 | 久久九九久久 | 久久精品国产亚洲aⅴ | 又大又硬又黄又爽视频在线观看 | 欧美日韩亚洲精品在线 | 精品一二三区 | 国产亚洲字幕 | 精品国产91亚洲一区二区三区www | 欧美成人久久 | 国产在线看 | 免费观看www7722午夜电影 | 欧美精品一区二区三区四区在线 | 亚洲免费专区 | 在线性视频日韩欧美 | 日韩欧美有码在线 | 精品视频97| 狠狠激情中文字幕 | 中文av资源站 | 日韩色区 | 久草在线费播放视频 | 在线国产视频一区 | 精品一二| 婷婷久久一区 | 激情综合亚洲精品 | 日韩精品欧美一区 | 中文字幕韩在线第一页 | 日本黄色免费看 | 激情视频免费在线 | 欧美色图一区 | 国产96在线 | 亚洲精品免费观看视频 | 久草视频在线免费 | 午夜成人影视 | 日本三级久久 | 免费在线观看日韩视频 | 精品日本视频 | 激情五月婷婷丁香 | 亚洲成人免费在线观看 | 午夜精品久久久久久久99水蜜桃 | 夜夜操天天干 | 国产手机视频在线播放 | 成人在线观看网址 | av免费在线网站 | 免费网站污 | 国产色在线视频 | 亚洲精品1234区 | 精品影院 | 久久精品女人毛片国产 | 亚洲一区二区三区精品在线观看 | 日韩高清一二三区 | 日韩天堂在线观看 | 国产在线91在线电影 | 亚洲国产日韩一区 | 蜜臀av性久久久久av蜜臀妖精 | 精品亚洲国产视频 | 久久免费视频一区 | 视频在线亚洲 | 欧美亚洲一区二区在线 | 日韩av一区二区三区 | 欧美成人一区二区 | 久久综合国产伦精品免费 | 欧美作爱视频 | 天天干天天搞天天射 | 久久性生活片 | 久久狠狠一本精品综合网 | 91色在线观看 | 99精品国产免费久久 | 久久av在线 | 在线观看中文字幕dvd播放 | 日日干日日 | 久久99精品久久只有精品 | 中文字幕123区 | 免费日韩 精品中文字幕视频在线 | 日本91在线| 日韩视频一区二区三区 | 69久久久| 99久久精品免费看国产四区 | 国产精成人品免费观看 | 日韩欧美高清视频在线观看 | 国产精品成人自产拍在线观看 | 99热在线国产精品 | 久久九九免费视频 | 精品欧美小视频在线观看 | 久久精品视频在线看 | 国产69精品久久久久久久久久 | 国产精品久久一区二区三区, | 激情大尺度视频 | 欧美一级久久久 | 91秒拍国产福利一区 | 久久久久久综合网天天 | 一区二区三区视频 | 狠狠狠操| 黄色视屏免费在线观看 | 在线免费观看羞羞视频 | www.夜夜爱 | 99精品视频免费在线观看 | 免费看特级毛片 | 国产精品免费一区二区三区在线观看 | 激情网色 | 人人超碰免费 | 欧美国产日韩在线观看 | 国产精品九九久久久久久久 | 欧美亚洲国产日韩 | 波多野结衣在线观看一区二区三区 | 国产日本亚洲 | www.香蕉视频在线观看 | 久久精品久久精品久久39 | 国产精品久久9 | 免费黄色在线播放 | 色欧美成人精品a∨在线观看 | 免费国产黄线在线观看视频 | 色综合网 | 超碰97人人干 | 黄色www免费 | 亚洲国产精品第一区二区 | 在线导航av | 久久人人97超碰国产公开结果 | 欧美久久久久久久久久久久 | 日韩有码欧美 | 国产亚洲精品久久19p | 国产午夜在线观看视频 | 免费手机黄色网址 | 精品视频国产 | 国内久久视频 | 国产精品福利久久久 | 色综合久久久久久久久五月 | 精品久久久久久亚洲综合网站 | 久久免费成人精品视频 | 婷婷去俺也去六月色 | 久久免费福利视频 | 国产精品av免费在线观看 | 久久久影院一区二区三区 | 亚洲专区在线视频 | 精品免费视频. | 夜夜躁狠狠躁 | 亚洲无毛专区 | 97在线免费视频 | 国产在线精品一区二区三区 | 亚洲一级黄色 | 六月激情丁香 | 最新日韩在线观看视频 | 97超视频免费观看 | 97超碰伊人| 99免费在线观看 | 精品播放 | 国产色综合天天综合网 | 婷婷香蕉| 亚洲精品国产第一综合99久久 | 午夜精品中文字幕 | 天天干天天色2020 | 欧美巨大荫蒂茸毛毛人妖 | 在线观看的av | 日韩精品一区二区三区丰满 | 成人在线视频论坛 | 超碰大片 | 另类老妇性bbwbbw高清 | 香蕉一区| 午夜视频亚洲 | 2019中文字幕第一页 | 欧美a影视 | 久久久久久综合 | 久久亚洲影视 | 精品国产人成亚洲区 | 国语精品免费视频 | 久久久精品网 | av免费高清观看 | 亚洲日韩精品欧美一区二区 | 又黄又爽的视频在线观看网站 | 在线国产能看的 | 久久精品美女视频 | 日韩av手机在线看 | a级国产乱理论片在线观看 特级毛片在线观看 | 麻豆国产视频 | 91在线免费观看国产 | 色av男人的天堂免费在线 | 国产日韩中文字幕在线 | 精产嫩模国品一二三区 | 日韩免费高清在线 | 久久久久成人免费 | 久久综合日 | 天天爽天天射 | 99精品国产在热久久下载 | 欧美男男激情videos | 成人三级网址 | www.五月天婷婷.com | 色婷婷久久久 | 免费看黄在线观看 | 成人黄色av免费在线观看 | 日韩久久精品一区二区 | 久久第四色 | 日韩18p| 国产成人精品一区二区三区 | 亚洲精品小视频 | 美女在线免费视频 | 在线亚洲激情 | av天天在线观看 | 久久国产亚洲精品 | 在线免费中文字幕 | 免费国产在线精品 | 国产精品久久久av | 日本99热 | 国产一级免费片 | av怡红院 | 一级黄色在线免费观看 | 亚洲精品综合在线 | 欧美日韩一区二区在线观看 | 免费看在线看www777 | 中文字幕免费高清在线 | 国产一区影院 | 欧美极品裸体 | 在线观看中文字幕亚洲 | 久久久久久久久网站 | a黄色大片 | 91在线观看视频 | 久久久九九 | 久久欧美在线电影 | 色综合夜色一区 | 美女国产 | 亚洲高清在线观看视频 | av中文在线影视 | 成人国产精品久久久 | www.大网伊人 | 干综合网| 最近最新最好看中文视频 | 精品久久国产一区 | 亚洲第一区精品 | 黄色av一区二区 | 色婷婷视频网 | 欧美日韩一区二区三区在线观看视频 | 久久国精品 | 国产精品入口麻豆 | 在线观看日韩免费视频 | 久久久麻豆精品一区二区 | 日韩av一区二区三区四区 | 欧美老女人xx | 中文字幕美女免费在线 | 国产不卡在线 | av片中文 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 韩国av免费看 | 欧美日韩高清在线观看 | 麻豆一级视频 | 亚洲一级黄色大片 | 日日日网| 午夜av网站 | 免费进去里的视频 | 黄视频网站大全 | 97天天综合网 | 欧美日韩免费观看一区二区三区 | 久久精品91视频 | 日韩av不卡播放 | 婷婷激情欧美 | 亚洲天堂香蕉 | 欧美性生活大片 | 久久精品视频3 | 日日操天天操狠狠操 | www色,com| 97免费中文视频在线观看 | 亚洲成人二区 | 国产一区电影在线观看 | 99热这里只有精品8 久久综合毛片 | 中文字幕在线观看视频一区二区三区 | 激情综合网五月婷婷 | 正在播放亚洲精品 | 国产在线观看一区 | 96av在线视频 | 国产成人精品一区二三区 | 国产.精品.日韩.另类.中文.在线.播放 | 看污网站 | 密桃av在线 | 国模视频一区二区三区 | 欧美精彩视频在线观看 | 日韩精品2区 | 国产日女人| 五月天精品视频 | 97高清视频 | 国产69精品久久久久9999apgf | 精品久久一 | 成人黄色电影在线播放 | 精品主播网红福利资源观看 | 国产一级免费在线观看 | 欧美天天干 | 欧美性色网站 | 亚洲综合干 | 久久国产美女 | 免费在线观看成人av | 五月天久久久 | 开心激情五月网 | 婷婷国产在线 | 国产一线在线 | 久久再线视频 | 91人人爽人人爽人人精88v | 婷婷色中文 | www.天天射| 91你懂的 | 免费看成年人 | 国产色在线视频 | 国产韩国日本高清视频 | 天天干天天摸 | 久久免费在线观看 | 天天撸夜夜操 | 国产综合视频在线观看 | 久久这里有 | 久久人人射 | 日韩在线视频免费观看 | 日韩在线免费高清视频 | 国产精品麻豆视频 | 黄色91在线观看 | 亚洲欧美综合精品久久成人 | 天天爽夜夜爽精品视频婷婷 | 欧美一区二区三区不卡 | 日韩在线视| 欧美日韩另类视频 | 亚洲三级网 | 亚洲视频大全 | 少妇视频一区 | 中文字幕 国产专区 | 欧美一级久久久久 | 99热在线国产| 免费高清无人区完整版 | 中文字幕中文字幕在线一区 | 精品视频9999 | av在线一级 | 国产精品免费麻豆入口 | 激情网五月婷婷 | 日韩欧美一二三 | 国产99久久久精品 | 国产.精品.日韩.另类.中文.在线.播放 | 欧美一级久久久久 | 中文字幕一区二区三区乱码在线 | 91超国产 | 亚洲成av人片在线观看 | 黄污污网站 | 黄色片免费看 | 国产小视频在线免费观看 | 国产精品久久久久久一区二区三区 | 亚洲一二区精品 | 亚洲综合激情 | 亚洲婷婷丁香 | 亚洲人人网 | 五月天天天操 | 精品国产电影 | 午夜久久久久久久久 | 久久亚洲欧美 | 色综合久久88色综合天天人守婷 | 精品99视频 | 亚洲天堂精品视频在线观看 | 日韩美女免费线视频 | 午夜视频在线观看一区二区三区 | 在线电影播放 | 中文字幕成人在线观看 | 91欧美国产 | 69国产精品视频 | 免费av 在线 | 精品国产一区二区三区久久影院 | 中文字幕在线影视资源 | 亚洲视频在线观看网站 | 99久久精品国产一区二区成人 | 免费a v在线 | 色诱亚洲精品久久久久久 | 激情五月婷婷丁香 | 精品99久久久久久 | 久久久久综合 | 天天射天天舔天天干 | 免费裸体视频网 | 久久精品视频一 | 在线日本看片免费人成视久网 | 中文字幕电影一区 | 亚洲最大av在线播放 | 精品国产一区二区三区久久 | 国产二区免费视频 | 国产精品99久久久精品 | 草久久影院| 日韩网站在线 | 九七视频在线观看 | 成人aaa毛片| 九九免费在线观看视频 | 亚洲一级免费电影 | 国产在线观看你懂得 | 午夜电影久久久 | 最近中文字幕大全 | 婷婷成人亚洲综合国产xv88 | 久久久久伦理电影 | 夜夜爽夜夜操 | 97国产小视频 | 国产精品久久久久久电影 | 91污在线 | 精品视频区| 国产精品成人自产拍在线观看 | 中文字幕综合在线 | 国产精品日韩在线 | 一区二区精品久久 | 91福利视频免费观看 | 免费看的黄色 | 亚洲综合小说电影qvod | sesese图片 | 伊人春色电影网 | 日日夜夜狠狠 | 成人毛片a| 最新日韩中文字幕 | 五月婷婷综合久久 | 久久久亚洲精品 | 国产成人精品亚洲精品 | 99在线观看 | 69视频永久免费观看 | 在线免费观看黄色大片 | 色欧美综合 | 精品自拍网 | 蜜臀av性久久久久av蜜臀三区 | 久久视频国产精品免费视频在线 | 少妇性aaaaaaaaa视频 | 狠狠干综合 | 久久国语露脸国产精品电影 | 婷色在线 | 久草在线免费在线观看 | 亚洲国产日本 | 久久综合久久久 | 在线视频1卡二卡三卡 | 成人av免费看 | 成人av在线直播 | 国产精品麻豆一区二区三区 | 久草免费电影 | 激情婷婷在线观看 | 精品久久在线 | 91精品国产综合久久福利 | 久草在线最新视频 | 91在线播放视频 | 久草精品电影 | 亚洲视频免费在线观看 | 在线观看免费观看在线91 | 国产精品一区二区三区观看 | 久久精品久久99精品久久 | 日韩乱色精品一区二区 | 福利一区二区三区四区 | 日日干天天爽 | 99久久精品国产一区 | 六月丁香综合 | 天天操天天操天天操 | 成人app在线免费观看 | 欧美日韩高清免费 | 干狠狠 | 国产999久久久 | 国产高清久久 | av福利第一导航 | 婷婷丁香激情五月 | 偷拍久久久 | 亚洲欧洲精品一区二区 | 99精品免费 | 亚洲综合五月天 | 免费看污在线观看 | 免费国产在线精品 | 亚洲精品视频一二三 | 国产无套精品久久久久久 | 久久久久综合 | 欧美一级视频一区 | 亚洲欧美日韩精品久久久 | 欧美在线观看小视频 | 97国产精品久久 | 色视频网站在线观看一=区 a视频免费在线观看 | 又色又爽又黄高潮的免费视频 | 成人性生交大片免费看中文网站 | 久久精品影视 | 99精品乱码国产在线观看 | h动漫中文字幕 | 中日韩免费视频 | 亚洲精品乱码久久久久久高潮 | 97av在线视频 | 日韩av免费一区二区 | 免费日韩 精品中文字幕视频在线 | 最近中文字幕在线中文高清版 | 色婷婷色 | 热久久国产 | 亚洲 欧美 国产 va在线影院 | 九色精品免费永久在线 | 久久伊人热 | 97国产人人 | 2020天天干夜夜爽 | 亚洲午夜激情网 | 日本成人中文字幕在线观看 | 国产精品国产三级国产专区53 | 天堂av在线网站 | 五月激情亚洲 | 日韩av一区二区三区 | 福利视频导航网址 | 视频一区久久 | 五月天com | 国产色视频123区 | 午夜av一区 | 久久观看最新视频 | 在线黄色av电影 | 欧美大香线蕉线伊人久久 | 少妇按摩av| 久久精品99国产精品亚洲最刺激 | 亚州精品在线视频 | 在线观看蜜桃视频 | 亚洲成年人免费网站 | 亚洲最大色 | 综合色婷婷| 天堂av在线网站 | 日本性生活一级片 | 天天色综合1 | 一区二区国产精品 | 国产高清视频在线播放一区 | 99精品一区 | 日韩高清精品免费观看 | 久久久久久高潮国产精品视 | 国内外成人在线视频 | 蜜臀一区二区三区精品免费视频 | 96看片| 韩日av一区二区 | 中文字幕亚洲情99在线 | www最近高清中文国语在线观看 | 亚洲精品视频一 | 日韩在线观看三区 | 一级特黄aaa大片在线观看 | 五月婷综合 | 五月天婷婷在线视频 | www.久久色 | 久久网页 | 国产精品mv在线观看 | 国产美女在线精品免费观看 | 日韩视频三区 | 天天色天天射天天综合网 | 免费黄色在线播放 | 日韩在线无 | 亚洲激情网站免费观看 | 国产成人一区三区 | 日日麻批40分钟视频免费观看 | 国产精品久久久久久久久久久久冷 | 91精品国自产在线 | 欧美性极品xxxx娇小 | 午夜精品三区 | 综合色亚洲 | 欧美人牲 | 久久免费观看视频 | 国产一区二区三精品久久久无广告 | 国产直播av | 91精品国产综合久久久久久久 | 中文字幕av专区 | 亚洲黄色小说网 | 在线观看视频99 | 国产 在线 高清 精品 | 婷婷丁香av | 91成人免费看 | 色婷婷免费视频 | 在线播放91| 日韩精品久久久久久久电影竹菊 | 日韩高清dvd | 五月婷激情 | 91视频在线自拍 | 99视频免费 | 免费av在线播放 | 国产午夜精品一区二区三区欧美 | 五月婷婷激情 | 在线观看91网站 | 麻豆国产视频 | 波多野结衣最新 | 在线观看免费成人av | 久久综合狠狠综合久久综合88 | 久久久久久久影院 | 成人福利av| 日韩高清一区 | 中文字幕区 | 在线观看黄网站 | 狠狠做深爱婷婷综合一区 | 精品国产色 | 五月天综合激情 | 久久视频一区二区 | 欧美日韩另类在线 | 波多野结衣一区二区三区中文字幕 | 婷婷伊人综合亚洲综合网 | 国产在线看一区 | 日韩精品一区二区在线视频 | 亚洲自拍偷拍色图 | 国产va在线观看免费 | 99riav1国产精品视频 | 精品国产一区二区三区久久久蜜月 | 97激情影院 | 99久久精品国产毛片 | 四虎影视欧美 | 欧美性天天 | 狠狠操狠狠插 | 国产精品久久久久久久7电影 | 最新日韩在线观看视频 | 91女神的呻吟细腰翘臀美女 | 六月天综合网 | 一区二区三区手机在线观看 | 久久不卡国产精品一区二区 | 亚洲精品视频大全 | 日韩欧美高清在线 | av亚洲产国偷v产偷v自拍小说 | 一区二区三区在线观看免费视频 | 97色在线观看免费视频 | 久久,天天综合 | 91欧美国产 | 黄色影院在线观看 | 欧美91视频 | 在线视频久久 | 丁香视频免费观看 | 91视频免费视频 | 色天天中文| 国产亚洲欧洲 | 另类老妇性bbwbbw高清 | 欧美黑人猛交 | 国产成a人亚洲精v品在线观看 | 精品少妇一区二区三区在线 | 国产传媒中文字幕 | 欧美日韩高清免费 | 日韩在线观看视频网站 | 国产亚洲一区二区在线观看 | 亚洲综合色网站 | 国产麻豆精品免费视频 | 天天综合亚洲 | 欧美激情综合网 | 成人动漫一区二区三区 | 久久国内视频 | 欧美一区二区三区特黄 | 日本精品中文字幕在线观看 | 天天爱天天操天天爽 | 国产精品原创在线 | 成人a级黄色片 | 一本一本久久a久久精品牛牛影视 | 亚洲免费精品视频 | 婷婷激情av | 五月婷婷久草 | 国产啊v在线观看 | 亚洲精品视频一二三 | 亚洲精品久久久蜜臀下载官网 | 97超碰伊人| 国产精品婷婷 | 在线一二三区 | 欧美一级久久久 | 91一区二区三区在线观看 | 精品毛片一区二区免费看 | 在线观看黄色 | 在线观看网站你懂的 | 欧美一区二区伦理片 | 国产精品一区二区在线免费观看 | 91视频免费 | 亚洲国产成人精品在线观看 | 九九爱免费视频 | 亚洲精品777| av一本久道久久波多野结衣 | 天堂av中文字幕 | 成人在线播放视频 | 中文字幕在线免费看线人 | 天天插夜夜操 | 午夜体验区 | 久久综合色8888 | 国产a级片免费观看 | 999视频在线播放 | 天天综合网天天综合色 | 免费国产黄线在线观看视频 | 国产亚洲精品久久久久久久久久久久 | 国产精品一级在线 | 91麻豆精品国产91久久久使用方法 | 国产精品一区二区久久国产 | 91黄色成人| 欧美精品久久久久 | 97精品久久| 亚洲成熟女人毛片在线 | 久久免费精品 | 青青草国产成人99久久 | 中文字幕在线视频第一页 | 国产精品一区二区在线观看 | 最新av电影网站 | 欧洲av不卡 | 黄色毛片在线看 | 精品美女在线观看 | 狠狠狠色| 日本特黄一级片 | 国产精品系列在线 | 成人av中文字幕在线观看 | 欧美色图另类 | 久久久999免费视频 日韩网站在线 | 最近中文字幕完整高清 | 国产黄色片网站 | 国产精品地址 | 在线香蕉视频 | 最近最新最好看中文视频 | 在线视频观看91 | 有码视频在线观看 | 91热精品| 精品久久亚洲 | 日本久久久久久久久久 | 欧洲色吧 | 久久久久免费看 | 亚洲在线色 | 亚洲天天在线日亚洲洲精 | 日本99热 | 亚洲黄色免费观看 | 亚洲精品一区二区三区高潮 | 成人av电影免费在线观看 | 日韩色一区二区三区 | 一二三久久久 | 五月开心婷婷网 | 国产精久久久 | 99久热在线精品视频成人一区 | 成人h动漫在线看 | 最新av中文字幕 | 中文字幕视频观看 | 日本韩国欧美在线观看 | 日韩高清国产精品 | 国产综合激情 | 亚洲精品国产高清 | 麻豆视频免费网站 | 欧美一区二区三区特黄 | 伊人成人激情 | 国产黄在线免费观看 | 久久99久久99 | 国产精品久久久久久久久久免费看 | 最近字幕在线观看第一季 | 亚洲天堂社区 | 99久久激情 | 国产精品99久久免费观看 | 日本中文不卡 | 黄色成人影视 | 国产精品久久精品 | 精品女同一区二区三区在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲精品黄色 | 久久久综合香蕉尹人综合网 | 干干夜夜 | 日韩专区一区二区 | 国产精品嫩草55av | 综合激情婷婷 | 久久免费片 | 久久99久久99精品免观看粉嫩 | 亚洲最大av在线播放 | 欧美一级免费高清 | 亚洲一区二区三区毛片 | 日韩簧片在线观看 | 免费观看国产视频 | 亚洲成成品网站 | 一区二区视频欧美 | 中文字幕免费观看全部电影 | av在线中文 | 91大神在线观看视频 | 国产色道| 91视频在线观看下载 | 国产精品视频区 | 美女黄频| 久草网在线观看 | 欧美精品被 | 日狠狠| 国产精品久久久av | 国产成人精品a | 中文字幕丰满人伦在线 | 国产a级精品 | 国产福利精品一区二区 | 日韩色av色资源 | 午夜精品一区二区三区视频免费看 | 午夜精品久久久久久久99婷婷 | 最近中文字幕视频完整版 | 麻豆传媒视频在线免费观看 | 在线色亚洲 | 永久免费精品视频 | 麻豆超碰 | 日韩毛片在线播放 | a爱爱视频| 久久久久久久久久久久国产精品 | 在线观看一区 | 久久精品中文字幕少妇 | 中文字幕免费一区 | 日韩久久在线 | 中文超碰字幕 | 91传媒免费在线观看 | 国产精品九九九九九九 |