前言:一段時間沒接觸,很容易就忘記以前的知識。專寫一篇,供幾個月沒接觸,拿起卻忘記了。 0、巨集定義、系統相關 0-1)、巨集定義 0-2)、系統相關 1、View 1-1)View的屬性 1-2)View的layer 1-3)View的方法 2、UILabel 2-1)UILabel的屬性 3、UIB ...
前言:一段時間沒接觸,很容易就忘記以前的知識。專寫一篇,供幾個月沒接觸,拿起卻忘記了。
0、巨集定義、系統相關
0-1)、巨集定義
#define APP_HEIGHT [UIScreen mainScreen].bounds.size.height #define APP_WITDH [UIScreen mainScreen].bounds.size.width
0-2)、系統相關
//重寫父類的方法,如TableViewCell 和 按鈕等本身有些View -(void)layoutSubviews { }
//自帶set 和 get 方法 @property (nonatomic,strong) NSArray *myArr; //懶載入 : 用這個數字的時候才去載入它!載入完之後,不在載入!(也相當於重寫上面的get方法) -(NSArray *)myArr { if (_myArr==nil) { _myArr = ; } return _myArr; }
//定時1秒,重覆 [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES]; //定時中斷處理(一般添加、暫停相應的任務到定時器上) -(void)timeAction:(NSTimer*)timer { NSMutableArray *viewArray = timer.userInfo; } //定時器失效(一般不會設置成失效,都是掛載到定時器上,不要就暫停該任務在定時器上的工作) [timer invalidate];
1、View
1-1)View的屬性
//中心點,設置中心點,就不用設置X、Y view.center //bounds 以自身為坐標系,改變是以中心為原點改變。 view.bounds = CGRectMake(0, 0, 20, 20);//只能修改大小 //frame 以父視圖 view.frame = CGRectMake(100, 100, 200, 200); //背景顏色 view.backgroundColor //標簽 view.tag //視圖交互,可能會擋住下麵的視圖 view.userinteractionenabled //父視圖 view.superview //超過父視圖就剪切掉 view.clipstobounds //透明 view.alpha //隱藏 view.hidden //旋轉一圈 view.transform = CGAffineTransformRotate(view.transform, M_PI); //寬放大1.5倍,高放大1.5倍, view.transform = CGAffineTransformScale(view.transform, 1.5, 1.5);
1-2)View的layer
//設置圓角 [view.layer setCornerRadius:100]; //設置邊框 [view.layer setBorderWidth:2.0]; //設置邊框的顏色 [view.layer setBorderColor:[[UIColor grayColor] CGColor]]; //設置陰影透明度 [view.layer setShadowOpacity:1.0]; //設置陰影偏移,寬100,高100 [view.layer setShadowOffset:CGSizeMake(100, 100)]; //設置顏色 [view.layer setShadowColor:[[UIColor grayColor] CGColor]]; PS: //超過父視圖,自動剪裁(UIImageView 和UILabel 等一些控制項,需要加這句才能setCorn!) [label.layer setMasksToBounds:YES];
1-3)View的方法
//把子視圖View移到最前面 [self.view bringSubviewToFront:view]; //把子視圖移到最下層 [self.view sendSubviewToBack:view2]; //插入 [self.view insertSubview:view2 atIndex:1]; [self.view insertSubview:view2 aboveSubview:view1]; [self.view insertSubview:view2 belowSubview:view1]; //所有的子視圖 NSArray *array= [self.view subviews]; //視圖移除 [view removeFromSuperview];
2、UILabel
2-1)UILabel的屬性
//內容 label.text //字體 label.font = [UIFont systemFontOfSize:fontSize]; //系統 label.font = [UIFont fontWithName:@"Times New Roman" size:fontSize]; //Times New Roman體 label.font = [UIFont italicSystemFontOfSize:fontSize]; //斜體 label.font = [UIFont boldSystemFontOfSize:fontSize]; //粗體 //字體預設左對齊 label.textAlignment = NSTextAlignmentLeft; //換行 label.numberOfLines = 0; //預設模式,換行保證一個完整的單詞 label.lineBreakMode = NSLineBreakByWordWrapping; //高亮模式 label.highlighted = YES; //高亮模式的字體顏色 label.highlightedTextColor = [UIColor redColor]; //陰影顏色 label.shadowColor = [UIColor greenColor]; //陰影偏移量,寬偏移5,高偏移5 label.shadowOffset = CGSizeMake(5, 5);
3、UIButton
3-1)UIButton的屬性
//按鈕失能 btn.enabled = NO; //按鈕選中 btn.selected = YES;
3-2)UIButton的方法
//按鈕創建的類方法 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; //按鈕是否選中狀態 [button isSelected]; //設置不同狀態下的【標題】,有正常、選中、失能等 [btn setTitle:@"點擊" forState:UIControlStateNormal]; //設置不同狀態下的【標題顏色】,有正常、選中、失能等 [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; //設置不同狀態下的【圖片】,有正常、選中、失能等 [btn setImage:[UIImage imageNamed:@"correct"] forState:UIControlStateNormal]; //設置不同狀態下的【背景圖片】,有正常、選中、失能等 [btn setBackgroundImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal]; //按鈕當前【標題】(獲取用於切換視圖,傳值等用途) NSString *titlenormal = [btn titleForState:UIControlStateNormal]; //按鈕當前【圖片】(獲取用於切換視圖,傳Image等用途) [btn currentImage] //按鈕當前【背景圖片】(獲取用於切換視圖,傳Image等用途) [btn currentBackgroundImage] //微調標題的位置(既然要調整,感覺還是用layout吧!) [btn setTitleEdgeInsets:UIEdgeInsetsMake(20, -20, 0, 0)]; //按鈕添加觸摸事件 [btn addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside]; //實現方法 -(void)clickAction:(UIButton*)button { NSLog(@"點擊了"); }
4、UIImageView
//動畫圖片幀的數組,動畫時間,動畫次數 _animationView.animationImages = arr; _animationView.animationDuration = time; _animationView.animationRepeatCount = count; [_animationView startAnimating];
4、導航欄
//推出新的視圖,返回用POP,只有Controller才能推。View推不了 [self.navigationController pushViewController:root animated:YES];
5、表視圖
5-1)cell的預設屬性
//內容 cell.textLabel.text = @"xxx"; //詳細內容 cell.detailTextLabel.text = @"xxx"; //圖片,png可以沒尾碼,jpg一定要有,嚴謹起見,最後連png也寫出來吧! cell.imageView.image = [UIImage imageNamed:@"xxx"]; //點擊不會有灰色的 cell.selectionStyle = UITableViewCellSelectionStyleNone; //右邊的箭號 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; //自定義右邊的View,最常見的情況是個箭號,表示載入更多 cell.accessoryView = view; //註意,一般添加用contentView,和Cell直接添加有點區別 [cell.contentView addSubview:view]; (這裡是UILabel的屬性) //不限行 = 自動換行, cell.textLabel.numberOfLines = 0; //字體樣式、大小設置, cell.textLabel.font
5-2)cell的自定義
5-2-1)cell的重寫父類方法
-(void)layoutSubviews { [super layoutSubviews]; self.imageView.frame =; self.titleLabel.frame = ; self.titleLabel.textAlignment = NSTextAlignmentCenter; }
5-2-2)cell的重寫 initWithFrame: reuseIdentifier:
6、警告窗
//創建一個警告窗控制器,及名字、消息、彈窗類型 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"確定收藏?" preferredStyle:UIAlertControllerStyleAlert]; //警告按鈕1 UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }]; //警告按鈕2 UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }]; //添加警告按鈕1、2 [alert addAction:action1]; [alert addAction:action2]; //彈出 [self presentViewController:alert animated:YES completion:^{ }];