標籤:
注意:控制器的視圖預設是透明的,需要給其設定背景。
a. 建立UILabel對象,使用帶frame參數的初始化方法。
此參數是結構體類型,包含了該UI對象顯示在視圖上的位置,尺寸。
iOS 座標系:
螢幕左上方為(0,0)起始點,
終點:(各代裝置尺寸不同而變化)
3GS及之前:(320,480) — 像素 — (320,480)
4,4s: (320, 480) — 像素 — (640,960)
5,5s:(320,568)
6,6s:(375,667)(plus:414,736)
b. 將UILabel對象添加到當前控制器的視圖上。
UILabel基本屬性
.text // 設定文字
.font // 設定文字字型 {
// 大小
lb.font = [UIFont systemFontOfSize:17];
//粗體
lb.font = [UIFont boldSystemFontOfSize:30];
//斜體,只對英文有效
lb.font = [UIFont italicSystemFontOfSize:17];
//系統的字型
NSArray *arrFonts = [UIFont familyNames];
//設定自訂字型
lb.font = [UIFont fontWithName:@"Bodoni 72 Oldstyle" size:14];
}
.textColor // 設定文字顏色 {
//設定背景色
lb.backgroundColor = [UIColor redColor];
//自訂色彩值
lb.backgroundColor = [UIColor colorWithRed:199.0/255.0 green:150.0/255.0 blue:100.0/255.0 alpha:1.0];
}
.textAlignment // 設定文字布局
.backgroundColor // 設定文字背景
.lineBreakMode // 設定文字換行模式{
lb.lineBreakMode = NSLineBreakByClipping;
lb.lineBreakMode = NSLineBreakByTruncatingHead;
lb.lineBreakMode = NSLineBreakByTruncatingTail;
lb.lineBreakMode = NSLineBreakByWordWrapping
}
.numberOfLines // 設定文字行數,設為 0 代表任意多行,會自動換行
.clipsToBounds // 設定是否將子圖層或子視圖的邊界剪下至主圖層或主視圖的邊界
.adjustsFontSizeToFitWidth // 文字大小適應視圖對象的寬度
.minimumScaleFactor // 最小文字縮放因子 0~1範圍,
.shadowColor // 視圖的陰影顏色
.shadowOffset // 視圖的陰影偏離位置
.layer // 設定視圖對象的圖層屬性 {
-.borderColor // 設定視圖的邊框顏色
-.borderWidth // 設定視圖的邊框寬度
-.cornerRadius // 設定視圖的圓角弧度
}
.attributedText // 設定帶屬性的文字
//取得當前視圖的寬度、高度
CGFloat w = self.view.frame.size.width;
CGFloat h = self.view.frame.size.height;
注意:
//將label貼到視圖上
[self.view addSubview:lb];
/*
app開發:
原生(頁面在用戶端)
網頁(頁面在伺服器端)
混生(前兩者混合)
網站推薦:coredova--開發混生架構,apicloud
*/
// 建立可變的帶屬性文字的屬性
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:lb.text];
// 為文字添加屬性
[attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(0, 2)];
// [attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12 weight:200] range:NSMakeRange(6, 8)];
//
[attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(2, 5)];
[attrStr addAttribute:NSBackgroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(2, 5)];
//
lb.attributedText = attrStr;
//研究
//Core Text 文字排版
UIButton
按鈕,使用者可觸摸,並給予使用者響應的視圖控制項。
繼承自UIControl (UIControl 繼承自UIView),注意與UILabel的區別
UIControl? 是所有控制類對象(如按鈕,滑動器等)的基類。
控制?iOS編程是基於事件驅動的。事件是發送給應用程式來通知它使用者動作的對象。事件發生後,會產生訊息發送給應用程式(UIApplication對象),由它進行訊息的分發,指定由誰來處理此事件。
UIButton建立及基本屬性,方法
兩種初始化方式:
// initWithFrame:
// buttonWithType: 使用系統給定的類型建立button,注意部分類型已無效。
.layer // 圖層屬性設定按鈕邊框
setTitle:forState: // 在不同按鈕狀態設定文字{
//設定Button的文字,帶有左移或右移的枚舉可以進行或、與或運算
[btn setTitle:@"我是一" forState:UIControlStateNormal];
// UIControlStateNormal = 0, //正常狀態
// UIControlStateHighlighted = 1 << 0, //高亮狀態 // used when UIControl isHighlighted is set
// UIControlStateDisabled = 1 << 1, //禁用狀態
// UIControlStateSelected = 1 << 2, //被選中狀態 // flag usable by app (see below)
// UIControlStateApplication = 0x00FF0000, // additional flags available for application use
// UIControlStateReserved = 0xFF000000
}
. titleLabel // 按鈕上文字所在的UILabel ,唯讀屬性{
// 訪問Button裡的label,redonly
btn.titleLabel.text = @"我被修改了";
btn.titleLabel.backgroundColor = [UIColor redColor];
}
setTitleColor:forState: // 在不同按鈕狀態設定文字顏色
setContentHorizontalAlignment: // 設定按鈕內容的橫向布局
{
//設定Button內容的布局
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];
[btn setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom];
}
setContentVerticalAlignment: // 設定按鈕內容的縱向布局
.backgroundColor // 按鈕背景色,不與狀態關聯
setSelected: //使按鈕處於選中狀態{
//使按鈕處於選中狀態
[btn setSelected:YES];
}
setBackgroundImage:forState: // 在不同按鈕狀態設定背景圖片 [ 背景顏色隨狀態變化? ]
setImage:forState: // 在不同按鈕狀態設定前景圖片{
//添加前景圖片
[btn setImage:[UIImage imageNamed:@"btnTree"] forState:UIControlStateNormal];
}
{
UIImage?圖片資料. 三種初始化方法:
imageNamed: // 從緩衝中讀取圖片,若無,則從程式包中找,找到後,先緩衝,再返回。否則返回nil
imageWithContentsOfFile: // 直接從路徑中找圖片
imageWithData: // 從位元據建立圖片
*從UIImage擷取圖片尺寸
//二進位流
NSData *dataForImg = [NSData dataWithContentsOfFile:@"/Users/arlen/Desktop/code/UIButtonBasic/UIButtonBasic/btnBackChange.png"];
UIImage *imgForUse2 = [UIImage imageWithData:dataForImg];
}
UIButton 狀態,事件
.state // 可設定按鈕的狀態,正常,高亮,選中等。按鈕初始是正常狀態,當點擊後,狀態發生變化。
***addTarget:action:forControlEvents: // 為某一特定事件添加目標對象和行為。(實際上是在內部訊息分發表中註冊該添加操作)
/* target: 目標對象,訊息的接收者
action: 標識行為的選取器
controlEvents: 事件類型
*/
iOS 開發學習之 User Interface(3)iOS 座標系和 UILabel 與 UIButton