iOS:常用屬性、方法

来源:http://www.cnblogs.com/leonlincq/archive/2017/06/22/7065463.html
-Advertisement-
Play Games

前言:一段時間沒接觸,很容易就忘記以前的知識。專寫一篇,供幾個月沒接觸,拿起卻忘記了。 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:^{
            
}];

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這種純CSS3美化單選按鈕radio的方法適用於以下情況: 1、可相容IE9以上,需要相容IE8的要寫IE的hack把樣式去掉 2、只支持單選按鈕radio,因為單選按鈕選中樣式的圓圈可以用CSS做出來,但是覆選按鈕checkbox的選中效果對勾就需要圖片或者圖標字體庫 3、不需要JS支持切換效果 ...
  • 簡介 常用地址 安裝node,查看版本命令: 因為npm伺服器在國外,如果沒有翻牆且npm特別慢的話,可以考慮安裝淘寶鏡像文件,安裝cnpm命令 npm 安裝參數說明: npm 安裝、卸載、更新、幫助、列出已安裝插件命令: npm自動生成配置文件 安裝好Npm後,全局安裝gulp 然後在你項目里,新 ...
  • Dragger2是Android應用開發中一個非常優秀的依賴註入框架。本文主要通過結合Google給出的MVP開發案例todo-mvp-dagger(GitHub連接地址:https://github.com/googlesamples/android-architecture/tree/todo- ...
  • 本文轉自: "在 Mac OS 上編譯 OBS | www.samirchen.com" 安裝環境 第一步,做準備工作,安裝編譯 OBS 所需要的環境,流程如下: 下載和編譯 OBS 從 "https://github.com/jp9000/obs studio" 下載 OBS 代碼: 編譯 OBS ...
  • 關於圖片壓縮:imageview的大小與image的大小不一致,識別的時候,是按照image的大小進行計算,通過重繪,使imageview與image保持一致。 關於坐標Y軸翻轉:屏幕的坐標原點即(0,0)點在左上角,識別圖片的坐標原點在左下角。 運行結果 控制台輸出結果 ...
  • levmar是一個強大的和高效率的C/C++庫,採用Levenberg - 馬奎德(LM)優化演算法, 主要是為瞭解決非線性最小二乘問題。官網是:http://users.ics.forth.gr/~lourakis/levmar/ 在PC引用,網上有挺多的資料可以查詢到,但我想應用到Android上 ...
  • 文章轉自: "直播協議的選擇:RTMP vs. HLS" 前言 隨著直播業務的興起,越來越多的直播平臺開始涌現,這火熱的程度好像一個應用不帶上直播業務出來都不好意思跟人打招呼。想要做一個直播業務,主要包括三個部分:採集推流端、流媒體服務端、播放端。這裡不多說,就主要結合 iOS 平臺,從觀看端出發, ...
  • 以前的左右滑動效果採用自定義scrollview或者linearlayout來實現,recyclerview可以很好的做這個功能,一般的需求就是要麼一個獨立的左右滑動效果,要麼在一個列表裡的中間部分一個左右滑動效果 而列表裡面也容易,只是需要解決一點小問題,個人認為值得一提的就是高度問題,一般的人採 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...