2013年11月21日 星期四

【職訓局-手機程式開發班】2013 11/21 Xcode

錄影檔:

1.http://youtu.be/ESeGDjZxuaQ 介紹xcode系統檔案
1.建立SQLite資料庫
在終端機上輸入:
> sqlite3 account.sqlite

2.將建立的sql檔案拖到xcode專案中*注意下方的add to targets的contacts要打勾

3.下載FMDB 網址https://github.com/ccgus/fmdb

4.將下載好的解壓縮,裡面有個src將他拖到xcode專案中(fmdb.m不用)

5.剛開始時要確定自己建立的資料庫是否複製到app中


6.基本資料庫連線:先import "FMDatabase.h"
在輸入:


FMDatabase *db = [[FMDatabase alloc] initWithPath:[self
                                                      pathForDatabase:@"account.sqlite"]];
[db open]; // 開啓資料庫
[db close]; // 關閉資料庫

7.查詢全部資料

8.新增 (修改刪除都類似)

9.管理工具可用firefox的工具
先安裝好firefox 在下SQLite Manager
安裝好就可以在工具找到SQLite Manager
再按開啓.sqlite檔案就能管理

UIScrollView使用:

1.設定outlet及protocol


@interface ViewController : UIViewController<UIScrollViewDelegate>
@property (strong, nonatomic) IBOutlet UIScrollView *scrollview;

2.程式部分

- (UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return scrollView.subviews[0]; // 設定可以縮放的目標
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"picas.jpg"]]; // 建立UIImageView 並設定圖片
    [self.scrollview addSubview:imageView]; // imageView 加入scrollview
    self.scrollview.minimumZoomScale = 0.5f; // 設定最大縮小倍率
    self.scrollview.maximumZoomScale = 5.0f; // 設定最大放大倍率
    self.scrollview.contentSize = imageView.bounds.size; // 設定scrollview的範圍
    self.scrollview.delegate = self; // 設定代理者
}

TableView使用:
1.建立tableView:可剛開始就新增也可後來自己拉出tableView

2.設定內容
- (void)viewDidLoad
{
    [super viewDidLoad];
    prices = @[@"NT$350",@"NT$400",@"NT$300",@"NT$250"];
    titles = @[@"book1",@"book2",@"book3",@"book4"];
    UIImageView *imageView1 = [[UIImageView alloc]
                               initWithImage:[UIImage imageNamed:@"footer.png"]]; // 設定標題圖片
    imageView1.contentMode = UIViewContentModeScaleAspectFit; // 讓圖片不會變形
    self.tableView.tableFooterView = imageView1;
   
    UIImageView *imageView2 = [[UIImageView alloc]
                               initWithImage:[UIImage imageNamed:@"header.jpg"]]; // 設定頁尾圖片
    imageView2.contentMode = UIViewContentModeScaleAspectFit; // 讓圖片不會變形
    self.tableView.tableHeaderView = imageView2;
}

3.加入內容
- (UITableViewCell *) tableView:(UITableView *)tableView
          cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString  *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc]
                initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }
   
    // 加入內容
    cell.imageView.image = [UIImage imageNamed:
                            [NSString stringWithFormat:@"book%d.jpeg",indexPath.row+1]]; // 設定row的圖片
    cell.imageView.contentMode = UIViewContentModeScaleAspectFit; // 讓圖片不變形
    cell.textLabel.text = titles[indexPath.row];  // 將陣列文字放入
    cell.detailTextLabel.text = prices[indexPath.row]; // 將陣列裡價格放入
    return cell;
}

2013年11月14日 星期四

【php】時間相關

時間加減
$date = date("Y-m-d",strtotime("-5 day")); // 今天日期減5天
$date = date("Y-m-d",strtotime("-5 month")); // 今天日期減5個月
$date = date("Y-m-d",strtotime("-5 year")); // 今天日期減5年

設定某個變數時間加減
$date = date("Y-m-d",strtotime("+10 day",strtotime($start_date))); // $start_date + 10天

怕系統時間不是台灣時間,確保安全程式可以加上
ini_set('date.timezone','Asia/Taipei');

【職訓局-手機程式開發班】2013 11/14 Xcode

錄影檔

navigationController:
1.https://www.youtube.com/watch?v=AS64UAiEsmo
2.https://www.youtube.com/watch?v=JOi5WS6JtQg

TabBar:
3.https://www.youtube.com/watch?v=bcCrchxZ1U0

Spring & Struts:
4.https://www.youtube.com/watch?v=-rOB8_tczgw

Autolayout
5.https://www.youtube.com/watch?v=nKqd4dVQwq8

骰子(晃動)
6.https://www.youtube.com/watch?v=BzKWbqM1esM
7.https://www.youtube.com/watch?v=FVKI1nkvyHI

水平儀
8.https://www.youtube.com/watch?v=WlNL0K673T4

網路
9.https://www.youtube.com/watch?v=JAHPBP8LTFI


1.空專案加入程式碼

2.去下一頁即回上一頁


3.TabBar

4骰子遊戲

4.Reachability

下載
加入檔案並設定
程式

2013年11月11日 星期一

【Android】換頁

1.頁面程式與xml要先準備好
2.AndroidManifest.xml 在application加入

3.程式:

Intent it = new Intent();
it.setClass(PriceMenu.this, Vegetable.class);
it.putExtra("type", "v"); // 代參數到下一頁
startActivity(it);


String type = bundle.getString("type"); // 下一頁接收方式

【Android】錯誤整理

出現:
1.The project was not built since its build path is incomplete. Cannot find the class file for java.lang.Object. Fix the build path then try building this project

2.The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files

解決:
可能是因為安裝了多次ADT
下載新的JRE
安裝新的JRE
進入window > preferences > java > Installed JREs

【職訓局-手機程式開發班】2013 11/11 Android

1.開啟特定網頁

其他URI功能:
1. 使用瀏覽器開啟
Uri myBlogUri = Uri.parse("http://kuikui.javaeye.com");
Intent returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri);
startActivity(returnIt);

2,地圖
Uri mapUri = Uri.parse("geo:38.899533,-77.036476");
Intent returnIt = new Intent(Intent.ACTION_VIEW, mapUri);
startActivity(returnIt);

3,調撥打電話界面
請將以下內容加入到manifest檔裡
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Uri telUri = Uri.parse("tel:100861");
Intent returnIt = new Intent(Intent.ACTION_DIAL, telUri);
startActivity(returnIt);

4. 直接撥打電話
請將以下內容加入到manifest檔裡
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Uri callUri = Uri.parse("tel:100861");
Intent returnIt = new Intent(Intent.ACTION_CALL, callUri);
startActivity(returnIt);

5. 反安裝
Uri uninstallUri = Uri.fromParts("package", "xxx", null);
Intent returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);
startActivity(returnIt);

6,安裝
Uri installUri = Uri.fromParts("package", "xxx", null);
Intent returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
startActivity(returnIt);

7.播放
Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");
Intent returnIt = new Intent(Intent.ACTION_VIEW, playUri);
startActivity(returnIt);

8,Email
Uri emailUri = Uri.parse("mailto:shenrenkui@gmail.com");
Intent returnIt = new Intent(Intent.ACTION_SENDTO, emailUri);
startActivity(returnIt);

9,發郵件
returnIt = new Intent(Intent.ACTION_SEND);
String[] tos = { "shenrenkui@gmail.com" };
String[] ccs = { "shenrenkui@gmail.com" };
returnIt.putExtra(Intent.EXTRA_EMAIL, tos);
returnIt.putExtra(Intent.EXTRA_CC, ccs);
returnIt.putExtra(Intent.EXTRA_TEXT, "body");
returnIt.putExtra(Intent.EXTRA_SUBJECT, "subject");
returnIt.setType("message/rfc882");
Intent.createChooser(returnIt, "Choose Email Client");

10,發簡訊
Uri smsUri = Uri.parse("tel:100861");
returnIt = new Intent(Intent.ACTION_VIEW, smsUri);
returnIt.putExtra("sms_body", "shenrenkui");
returnIt.setType("vnd.android-dir/mms-sms");

11,直接發郵件
Uri smsToUri = Uri.parse("smsto://100861");
returnIt = new Intent(Intent.ACTION_SENDTO, smsToUri);
returnIt.putExtra("sms_body", "shenrenkui");

12,發MMS
Uri mmsUri = Uri.parse("content://media/external/images/media/23");
returnIt = new Intent(Intent.ACTION_SEND);
returnIt.putExtra("sms_body", "shenrenkui");
returnIt.putExtra(Intent.EXTRA_STREAM, mmsUri);
returnIt.setType("image/png");

2.使用集合物件

3.取得手機APP及ScrollView
畫面:

程式:

XML:

2013年11月7日 星期四

【職訓局-手機程式開發班】2013 11/07 Xcode

1.登入頁面製作

先拉出頁面

設定觸發事件的delegate

設定動作名稱

拉出按住ctrl拉outlet及action

程式部分

2.編輯器
先拉出頁面

程式碼部分

3.打地鼠小遊戲
準備


程式部分

4.MBAlert


下載

加入QuartzCore.framework

準備


程式碼即執行結果

5.SidePanel旁邊可拉
下載

跟上面一樣加入QuartzCore.framework
畫面

程式

6.PhotoStack
下載網址:https://github.com/tomlongo/PhotoStack/
將下載的放入專案

畫面設定

程式

7.resizableImageWithCapInsets

2013年11月4日 星期一

【職訓局-手機程式開發班】2013 11/04 Android

1.製作透明提示效果


設定點擊時消失
2.製作動畫

設定動畫檔 路徑要在res下

主程式:

動畫設定相關屬性

點選時關閉和開啟按鈕
新增說明文字