發表文章

目前顯示的是 2017的文章

iOS - ScrollView的學習筆記

圖片
ScrollView的學習筆記 這個ScrollView的元件是到了公司後,因為需求關係而找資料來所學習的。 在用這個元件的時候的確很奇妙也摸索了一陣子,在找方法把它加到storyboard裡面。 看了很多參考資料,總結出一句最簡單的用法 就是 ScrollView 不用設定寬高,透過裡面的 View 的寬高來把它撐出來。 ScrollView在設置的時候,Constrain 只用設計貼齊螢幕而在寬高的部分不用進行設定,只需要透過裡面的view  設定高度 然後在 設定 scrollView 的寬與 view 的寬一樣。 這麼一來上面出現的紅色就可以解決了! 讓我們圖解來看一下 首先,我先把 ScrollView 放在畫面上然後依照需求來設定 ( 在於 ScrollView 的寬高不要去進行設定 ) 接下來把我們要的View放上去, 只需要設定高度就好(而這個高度就依照個人需求設置) 最後再把在把 ScrollView 設定與我們的View 同寬(Equal Widths),那麼出現的紅字出錯就會消失了。

Swift 字串的處理 _ strSample.characters.split (separator: )

圖片
把字串分拆,放入陣列 有個字串是 "25,09,37.8" 要把它分別拆開成為一個一個放入陣列的時後 可以透過 strSample.characters.split(separator: ",").map(String.init)  方式來分拆 let useString = "25,09,52.20" func useSample(strSample: String!) -> [String]{     let arrSample = strSample.characters.split(separator: ",").map(String.init)     return arrSample } print("change UseString \(useSample(strSample: useString))") 這時候就可以做其他相關運用了.....

IOS_Object-C 學習筆__ UITextField 限制文字框字數 ( Convert button text )

圖片
限制文字框字數 UITextField 的方法 想要的功能,限制文字框的字數! 如果想要使用者輸入帳號密碼且要在輸入的長度做限制。 最近剛有用到這個功能,起在網路上收尋的時候找到的資料,是可以限制字數! 但是與想要呈現的方式還是有些許不同,最後解決的方法如下。 首先要先把這個文字框的IBOutlet 給建立起來! 接下來我們會用到兩個方法來實現這個行為  - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; -(void)textViewDidEndEditing:(UITextField *)textField; 接下來要在 viewDidLoad 上幫文字框做標記,  _useTextTwo.tag = 1;  _useText.tag = 2; 上把監聽器放上去!  接下來透過 shouldChangeCharactersInRange 這個方法來  來判斷目前使用者選到哪一個文字框和把輸入的文字給存起來  然後在透過 textViewDidEndEditing 這個方法來實踐,限制文字框字數的事情

IOS_Object-C 學習筆__ Button 按下後換 Button 文字 ( Convert button text )

圖片
Button 按下後換 Button 文字 ( Convert button text )       改變按鈕上呈現的文字內容,例如我們要按下按鈕後改變 Button 物件文字內容。 首先,要給這個按鈕拉 IBOutlet 傳遞要改變的內容和 IBAction 要執行的事情。             第二,透過設置布林值來判斷按鈕是否在被按下一次。    第三, setTitle 按下去後要呈現的文字。 //======= @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *textButton; @property (nonatomic, assign) BOOL buttonTouch; @end - (void)viewDidLoad {     [super viewDidLoad];     // Do any additional setup after loading the view, typically from a nib.     [_textButton setTitle:@"按一下" forState:UIControlStateNormal]; } - (IBAction)oi:(id)sender {     self.buttonTouch = !self.buttonTouch;     if (self.buttonTouch ) {         [_textButton setTitle:@"再按一下" forState:UIControlStateNormal];     }else{         [_textButton setTitle:@"按一下" forState:UIControlStateNormal];     }    }

IOS_Object-C 學習筆__ NSString 轉換成 NSData ( Convert NSString to NSData )

圖片
如何把一個字串的格式內容   如何把一個字串格式內容, 轉換成時間的格式!   從這個範例來看,先初始化我們要用的物件   然後在設定它的格式   接下來透過 dateFromString 來把要轉換的字串帶進去   這樣就能把文字轉換成 Date 的格式 Convert NSString to NSData  Change NSString type to NSData!  First need initialized object use NSDateFormatter.  Second setting data format.  Third use "dateFromString" change the NSString type. //=====================//     NSString *dateStr = @"2017-8-3";      //sample1       NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];     [dateFormat setDateFormat:@"YY-MM-dd"];     NSDate *date = [dateFormat dateFromString:dateStr];     NSLog(@"dateFormat1 :%@",date); //sample2     [dateFormat setDateFormat:@"MM-dd-YYYY"];     NSString* temp = [dateFormat stringFromDate:date];       NSLog(@"dateFormat2 :%@",temp); //sample3     NSString *Date = @"2017-01-24";     NSDateFormatter *useDate = [[NSDateFormatter alloc] init];     [useD

IOS_Object-C 學習筆__ 日期時間處理使用 (NSDate)

圖片
日期時間處理使用 (NSDate) 使用方式 NSDate 物件是表示特定的時間點。而且這裡面記錄的時間是自2001/01/01 以來的時間, 時區是GTM+0 。 因此取得目前的時間方式可以透過 NSDate 來得到!  NSDate *today = [NSDate date];  NSLog(@"  拿到的時間是 :  %@",today); 而在模擬器跑出來的結果是 拿到的時間是 :  2017-07-24 10:18:48 +0000 後面這個 +0000 ,的意思是用GCM+0 的時區來列印的,因為這個是美國時間!而在台灣的我們時區是  GMT+8 ,所以如果是要印出台灣的時間,就要先作轉換!! 因此可以透過以下兩種方式來轉換! 1. 用  NSDateFormatter 直接轉換 2. 用   setLocale  和  setTimeZone   時區位置和哪個城市的時間 第一種方式:    //透過 NSDateFormatter 來轉換成台灣時區     NSDateFormatter *taiwan = [[NSDateFormatter alloc] init];     [taiwan setDateStyle:NSDateFormatterShortStyle];     //印出年月日     [taiwan setTimeStyle:NSDateFormatterMediumStyle];    //印出台灣時間     NSString *taiwanTime = [taiwan stringFromDate:today];     NSLog(@" 台灣的時間是 : %@",taiwanTime); 第二種方式:   //不管位置如何,只限定台灣時區   // setup date format     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];     [formatter setLocale:[[ NSLocale alloc] initWithLocaleIdentifier:@"zh_Hant_TW"]];

IOS_Object-C 學習筆記__Navigation Controller 用程式碼 完成

圖片
Navigation Controller 用程式碼 完成 註記:在NavigationController上的按鈕是  UIBarButtonItem 用程式碼完成NavigationConTroller設定! 到ViewController畫面後 ,我們可以依序設定 Title ,Button   透過幾行程式碼,就可以完成設定

IOS_Object-C 學習筆記__Navigation Controller 用storyboard 方法

圖片
加入 Navigation 使用storyboard方式 Navigation 使用storyboard方式 要把 Navigation Controller 加入畫面時,我們透過 Editor > Embed In >Navigation Controller 加入這個控制器 當我們按到Cell的時候要show出下一個畫面,因此需要在storyboard 再新增一個View Controller ,然後在Cell上按著鍵盤control 拉到新的ViewController 選 show ,此時我們點選cell時就會轉跳到新的那一頁去了! 當然我們也可以在加上按鈕 加上按鈕後,當按下按鈕要有動作時,記得要拉 IBAction!

IOS_Object-C 學習筆記__Table View

圖片
Table View 筆記(Objective-c) 主要筆記:Table View的使用上,有幾個地方要注意。 1. 簽協定,有兩個必寫方法! 2. Cell 的 Identifier 記得命名。 Note:  程式碼的部分用兩種方式去寫,一個是用property一個是用全域變數的寫法,兩個寫法要注意的重點,在旁註解都有註釋。 流程: 首先在View Controller 的畫面貼上 Table View 和與它所搭配的  Table View Cell。 Table View只能有一個欄位,但可以有很多個列,看需求而來設定! 在畫面左邊地部份可以按照需求來選擇自己要的Style。 還有下面的Identifier要設定,這樣在 dequeueReusableCellWithIdentifier才有辦法使用 接下來就是寫一些程式碼來完成實做 當我們使用Table View 時需要簽署 Protocol建立管道,而方式與  Picker View 建立管道的方式一樣。 在Table View  和 View Controller 建立 Delegate 和 DataSource 管道! 管道建立完成後,會有兩個必須要寫的方法 1. numberOfRowsInSection 2. cellForRowAtIndexPath  這個方法不是必寫,而沒寫時預設值是1 numberOfSectionsInTableView  以下是程式碼部分:

IOS_學習筆記 (換頁的2個方法!)

圖片
快速學習換頁的兩個方法 這裡主要是記錄快速換頁的兩個方法, 首先,先講最簡單的換場方式! 拉View Controller 後 開一個新的資料夾,接下來把命名id 寫上ViewController 然後把按鈕的連結拉去,要show的畫面上做上連結!(完成) 這個方法只限於用Storyboard 開發才可以用 第二個方法,透過程式碼來換頁! 建立兩個View Controller! (記得幫新開的View Controller 寫上class) 第一頁建立一個按鈕Button(記得幫按鈕命名) 然後在第一頁的程式碼中,宣告去下一頁方法並實作方法內容。 這樣就能快速完成,換頁的這個功能了。 筆記心得: 每個新的View Controller記得 #import 進去,不然不會有人理你.... 參考網址: 不用寫程式碼換至下一頁 透過,簡單的拖拉完成 IOS_學習筆記(不用程式碼前進下一頁) 透過程式碼完成 IOS_學習筆記(用程式碼前往下一頁)

IOS_學習筆記(Slider)

快速學習 Slider_滑桿 運用: 透過三個Slider滑桿的變化,來控制背景顏色! 這個是簡單的一個畫面的內容,所以首先我要知道我們需要建立什麼 需要 3 slider 與 原本的ViewController;有了這兩樣東西, 要讓視圖與控制器說話,所以要建立三個 IBAction ,告訴他說被改變了 要讓控制器與視圖說話,所以要建立三個IBOutlet,告訴他要改什麼 程式碼內容: @interface ViewController () @property ( weak , nonatomic ) IBOutlet UISlider *radSlider; @property ( weak , nonatomic ) IBOutlet UISlider *greenSlider; @property ( weak , nonatomic ) IBOutlet UISlider *blueSlider; @end @implementation ViewController - ( void )viewDidLoad {     [ super viewDidLoad ];     // Do any additional setup after loading the view, typically from a nib. } - ( IBAction )rad:( id )sender {     [ self background ]; } - ( IBAction )green:( id )sender {     [ self background ]; } - ( IBAction )blue:( id )sender {     [ self background ]; } -( void )background{     // 拿到三個顏色     CGFloat   rad = self . radSlider . value ;     CGFloat green = self . greenSlider . value ;     CGFloat

IOS_Objective-C學習筆記_(陣列 / 可修改陣列 ;字典 / 可修改字典)..

圖片
Objective_筆記 這篇筆記主要是在整理 陣列Array / 可修改陣列MuntibleArray ; 字典 Dictinoary/ 可修改字典MuntibleDictionary #陣列Array NSArray * thisarray = @[@50,@60]; NSLog(@"這是陣列內的數字:%@",thisarray); # 這是可變動的陣列  NSMutableArray //用一個陣列來產生一個可變動的陣列 NSMutableArray * thisMutableArray = [NSMutableArray arrayWithArray:@[@"50",@"100",@"50",@"40"]]; //取出陣列中第n個元素 NSString * one = thisMutableArray[1]; NSLog(@"陣列中第n個元素是:%@",one); NSLog(@"這是一個可變動的陣列:%@",thisMutableArray); //產生一個空的陣列 NSArray * emptyArray = @[ ]; NSLog(@"%@",emptyArray); //以下這一行也是創造一個空的陣列 NSMutableArray * foo = [[NSMutableArray alloc]init]; NSLog(@"創造一個空陣列1:%@",foo); //如果要修改陣列前,要先確確認陣列是用NSMutableArray 宣告的! (因為這樣才能夠變動陣列的內容) NSMutableArray * sub =[[NSMutableArray alloc]init]; //新增元素加到陣列 ,只能分批加入 [sub addObject:@"array1"]; [sub addObject:@"array2"]; [sub addObject:@"array3"]; NSLog(@"加入元素1:%@",sub); //

IOS_Objective-C學習筆記__(繼承)

圖片
這一篇內容主要是介紹如何使用objective-c 中的繼承功能,透過圖解的方式案範例,可以更清楚了解,這個如何運作。 繼承是一個實用的功能,這個可以減少重覆使用的造字! 像是我們開兩個類別時,這兩個類別有相同的『屬性』與『方法』時, 照原來方式寫的話,兩個都要各自寫一次一樣的功能,因此可以透過繼承的方法 讓一樣內容的屬性方法放進去,而在夠過繼承的模式直接寫一次就可以使用了! 而這個繼承的方法是,再開一個新的類別! 把共同要使用的方法屬性寫進去! 在這會產生兩種狀況,繼承者與被繼承者 而接下來我們要先把繼承者imprt進去 繼承者的內容 先舉一個簡單例子! 我們先開兩個自訂飲料類別,分別是 奶茶 和 紅茶! 而在這個這兩個方法裡面有共同的方法和屬性,因此我們可以再開一個類別來裝( Mixtea )共同的屬性和方法,讓 紅茶 ( Redtea ) 和 奶茶 ( Milktea )這兩個類別來繼承這裡面的東西! 接下來我們要先把紅茶和奶茶的 .h檔案  #import Mixteat.h 檔案讓他們認識!! 再來要去主要執行檔案的部份也把他 #import 認識 完成後就到Mixtea.h  ,把會用到的方法和屬性寫下來 這樣接下來 就可以一起使用了,再到Mixtea.m 把要實作的方法寫進去 最後到主要執行檔案要做的事情寫上去

IOS_Objective-C學習筆記__(自訂屬於自己的-類別 )

圖片
這一篇內容主要是再額外紀錄一次,關於「類別」; 要自訂類別首先先開一個新檔案 New > New File >  自訂類別名稱 (這次我們舉例 建立BMI 的案例) New > New File > Player  (此時會產生一個.h 和 .m  檔案!) 而這個  .h  是 interface 介面檔案 (也就是公開檔) 另一個  .m 是 implementation  實作檔 (也就是私密檔) 在 .h 這裡的程式碼 寫會用到的屬性和方法 在 .m這裡的程式碼 寫“實作”的方法 這樣我們就完成了自訂類別了!! 接下來是要去我主要的程式檔案中  把我們建立的類別 #import 讓他認識 也就是說,每建立一個新的資料夾,都要讓最主要的檔案去import 認識 最後的最後把,剛才建立的內容拿出來使用

IOS_Objective-C學習筆記__(字典 Dictionary / 新增字典的資料NSMutableDictionary / 空值 nil)

圖片
# 字典(Dictionary) 這個的使用方式與Array的方式類似,Dictionary 是有一個key-Value的關係; 宣告方式如下: NSDictionary * book = @{ @"name" : @"小紅帽" ,                                                  "boughtDay" : @"2017-4-17",                                                 "isbn" : @"2345678"                       }; # 新增修改字典 (NSMutableDictionary) 宣告方式如下: NSMutableDictionary * 自訂名 = [NSMutableDictionary dictionaryWithDictionary:@{  }] 新增 移除 插入方式與 陣列寫法一樣 # 空值(nil) 表示資料不存在,而表示方式是 nil 寫法: NSString * a = nil ; ( a 這個值是空值 ) # NSNumber NSNumber 表示一個數字型別 但是NSNumber是無法做數字加減 ,要做運算要轉int # 自訂類別 記得要去#import 所寫的類別 自訂一個新的類別時,要開一個新的資料夾 New>New File >輸入自訂類別名稱,這時候會產生.h 和.m檔案 .h 這裡是 介面檔 / 公開檔 (寫有什麼,能力) .m這裡是 實作檔 / 私密檔 (寫實做什麼,內容) 如下例子:開了個叫Television的自訂類別 在.h檔中寫下 有什麼介面 在.m檔 中寫下實作功能 # 其他記錄 NSDictionary 與NSMutableDictionary 的

IOS-Swift 學習筆記_( 陣列 字典與集合)

圖片
上一篇寫到的陣列部份,而這一篇將提到字典和集合! 首先做一個陣列與字典的寫法差異 藉由這一張的陣列Array與字典Dictionary 可以清楚看到, 兩者在於把文字串起來的方式是有所不同的! 而在新增刪除修改 字串,數字,浮點數進入的方式與陣列的模式是一樣的。 通常 注重順序關係 的時候會用到Array, 而如果是要管理的資料有 Key-Value對應關係 的話會用到Dictionary 來處理 # 集合(Set):用法和Array很類似,但是不具有順序,只是記錄一群的物件