雖然這篇UILabel 換行鄉民發文沒有被收入到精華區:在UILabel 換行這個話題中,我們另外找到其它相關的精選爆讚文章
在 uilabel產品中有3篇Facebook貼文,粉絲數超過5萬的網紅軟體開發學習資訊分享,也在其Facebook貼文中提到, --免費中-- 學習使用 Swift 4 和 Xcode 9 建構用戶註冊、登入、登出的功能 從這 2.5 小時的課程,你會學到 1. 使用 UILabel(s ),UITextField(s) 和 UIButton 2. 處理 UIButton 的行為 3. 將資料儲存在安全的...
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
uilabel 在 軟體開發學習資訊分享 Facebook 的精選貼文
--免費中--
學習使用 Swift 4 和 Xcode 9 建構用戶註冊、登入、登出的功能
從這 2.5 小時的課程,你會學到
1. 使用 UILabel(s ),UITextField(s) 和 UIButton
2. 處理 UIButton 的行為
3. 將資料儲存在安全的地方-使用 iOS Keychain
4. 發送 HTTP 請求和處理 HTTP 回應
5. 將 NSDictionary 型別的物件轉換成 JSON 格式和從 JSON 格式轉換成 NSDictionary 型別的物件
6. 顯示旋轉活動標示符( spinning Activity Indicator )做進度顯示
7. 顯示警示訊息對話框
8. 實現用戶註冊和登錄頁面
9. 顯示和離開 UIViewController
uilabel 在 紀老師程式教學網 Facebook 的最讚貼文
[學員來信回覆] 『饕客』與『漁夫』
以下是那位先前我說過,這一期 iPhone / iPad 程式設計班用功到我立正致敬的學員,昨天問我的問題。今早抽空回覆他後,覺得裡面有些程式抓錯(Debug)邏輯與技巧,很值得分享給大家知道,所以就貼上來了。如果您沒學過 iPhone / iPad 程式設計,對於原始碼說明那部分可以無視跳過去,但前頭的「除錯邏輯」麻煩您看一看,應該會有幫助。下次發生「某功能跑不出來」,就不會只是像無敵風火輪裡的天竺鼠一般,「怎麼辦怎麼辦」地窮轉而徒勞無功了。
什麼?你問我這跟『饕客』與『漁夫』有什麼關係?哈哈哈!你看完就知道了。
----------------
[學員來信部分]
Hi,老師
秀不出來,是if的判斷式有錯?
(紀老師:是的,以下就沒了,就像你跟醫師說完「我咳嗽」,其它問題都回答「不知道」是一樣的)
[紀老師回信部分]
您好:
其實寫程式的「抓錯(Debug)」跟醫師診斷病因有異曲同工之妙。病人跟你說:「我咳嗽」,你就得靠經驗用「消去法」,刪除不可能的病因,直到只剩一條病因、並驗證就是這條病因導致為止。
同樣的,您說「秀不出來」,這可以分為幾個可能「病因」去檢查:
(1) 根本沒有觸發該函數(也就是說,沒有綁定)。
(2) 觸發該函數了,可是沒執行我們想要它執行的程式碼。
(3) 觸發該函數,我們想要它執行的程式碼也執行了,但是因為程式邏輯可能有誤,導致執行結果一片空白,變成「秀不出來」。
以上的「思維」,對於將來「XXX 功能『跑不出來』」這種情況一體適用。所以,上面的幾條「斷診邏輯」,麻煩您要絕對緊記在心。下次就不會只是兩手一攤說「秀不出來」,而是「我的函數有觸發,程式碼也執行了,但就是秀不出來。老師可以幫我看看我的程式邏輯哪裡有錯誤嗎?」對我來說,後者問問題的「段數」,比前者高了很多(以上我嘗試著把你從吃魚的「饕客」,變成抓魚的「漁夫」)。
如果想要檢查出 (1) 與 (2) 很簡單,只要多加兩個 NSLog() 就可以了。如下所示:
-(void) show:(UIButton *) sender
{
NSLog(@"Enter (void) show"); // 第一個 NSLog()
if ([btnShow.titleLabel isEqual: @"Show"]) {
NSLog(@"Enter if-statement"); // 第二個 NSLog()
lblShow = [[UILabel alloc]initWithFrame:CGRectMake(120,200,100,20)];
lblShow.text = @"Hello World!";
lblShow.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:lblShow];
[btnShow setTitle:@"Hide" forState:UIControlStateNormal];
}
}
我執行後發現,第一個 NSLog 有執行,但第二個 NSLog 沒執行。所以,函數有觸發,(1) 號病因不成立。(2) 號病因成立。
明明 btnShow 上面的 Title Label 就是 Show 啊?為什麼 if 會不成立,導致 (2) 號病因成立呢?這時你就有能力把眼睛「完全聚焦」在 if (…) 那一段,解開後,整個問題就解開了。仔細看後發現,你的屬性用錯了。 btnShow.titleLabel 的型別是 UIButton,而 UIButton 的 isEqual,根據使用說明書提示,是判斷該 UIButton 的「識別字(Identifier)」是否為 @"Show",而不是 UIButton 上的表面文字是否為 @"Show"。所以,程式碼應該寫成:
-(void) show:(UIButton *) sender
{
NSLog(@"Enter (void) show");
if ([btnShow.titleLabel.text isEqualToString: @"Show"]) {
NSLog(@"Enter if-statement");
lblShow = [[UILabel alloc]initWithFrame:CGRectMake(120,200,100,20)];
lblShow.text = @"Hello World!";
lblShow.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:lblShow];
[btnShow setTitle:@"Hide" forState:UIControlStateNormal];
}
}
您應該比對的是 titleLabel 的 .text,不是 titleLabel 本身。
至於按下「Hide」按鈕後,怎麼讓原來的字不見,您就得多加個 else 或 else if 了。在 else { … } 內先把 lblShow 隱藏,然後把 btnShow 的 title 改回 @"Show"。這個就留給你自己補上了。
雖然我只花了 5 秒就知道問題在哪裡(因為這種錯我也常犯,習慣了),但是我願意花 20 分鐘打這些字,希望你將來能變成「5 秒就知道問題在哪裡」的人,哪天也可以很驕傲地教別人如何 Debug。這是我最大的期望。
-----------------------------------
紀俊男(Robert Chi)
uilabel 在 紀老師程式教學網 Facebook 的精選貼文
[iOS 6.0 新功能] Attributed String
這是我最近製作新版 iOS 6.0 程式設計講義時發現的。以前的字串(不管是 NSString 或 NSMutableString)都無法設定「被景色」、「前景色」、「加粗、斜體、底線」、「陰影」。更別說一個字串內,前面三個字與後面兩個字分別使用不同的「顏色、字體、陰影」了。
但這些在 iOS 6 內都變成可能!iOS 6 引入新的「Attributed String」,可以針對字串全體、或是局部,進行不同的字體與顏色變換。詳細方法可以參考隨附連結。如同各位所知,「字串」(NSString、NSMutableString)備用在很多 iOS 的視覺元件。如:UILabel、UITextField...到處都有字串的影子。也就是說,現在暗藏在這些視覺元件內的字串,也能套用「Attributed String」特性,讓視覺元件內的一個字串,呈現不同風貌。
有需要的朋友,請點選下列連結觀看:
http://ioscreator.com/format-text-in-ios6-attributed-strings/