close

最近在學習開發 iPad 上的軟體,原本用 facebook 記錄,因為介面還蠻好用的,不過用多了就雜亂,回頭記在 Blog 一篇

2011-07-26

UIViewController Class Reference

View Controller Programming Guide for iOS

上面這兩份文件,講的事 MVC 裡頭最重要的 UI 的部份,是所有開發 iOS App 都得熟讀的,網路上有 Stanford 的 CS193 的影片和講義,但除了英文隔層紗之外,也不適合下手,建議從這裡開始 Your First iOS Application,看似簡單,其實含括了所有會用到的概念

得考慮使用者把 iPad 轉來轉去的問題,看這裡 

Technical Q&A QA1588
Automatic orientation support for iPhone and iPad apps


敎你怎麼背景設定不同的背景,不過實測後好像不 work,應該有地方沒考慮到,仔細測試後發現是可以的,只不過被我後來的 view 給蓋掉了,看來得把 view 的背景設定成為透明的

http://stackoverflow.com/questions/402/iphone-app-in-landscape-mode 這裡有說怎麼設定一開始就是 Landscape 的模式,不過 Apple 不建議這麼做,無論從哪個方向都應該能正確開啟你的 App ~~ 測試不 work

目前看來,背景會被 view 給蓋掉,好像也沒辦法縮小 view 讓背景跑出來,怎麼回事呢,試著用不同的方式建立 project 重新試一次

結果是,上面的方法都不適用, 參考一下 Your First iOS Application 裡頭的 MyViewController 的作法,然後設定該 view 的 setBackgroundColor 用 colorWithPatternImage,這樣子,background Image 就不會被 view 蓋掉了,你可以用 setBackgroundColor & colorWithPatternImage 這兩個字去 google 詳細說明,或者直接參考 這裡

解決了背景的問題,接下來得處理 Rotate 時,要用不同的背景圖,找了一堆,目前的答案 是說,要用兩張圖,然後自己去判斷目前的狀態 Portrait/Landscape,更換底圖,不知道有無更好的辦法

同時, App 的 Icon 也要請美工幫忙設計一下, 規格參考 Apple 的 Custom Icon and Image Creation Guidelines

在開發的過程中一定會try東try西的, 總是有許多東西留在 xcode 的 cache 裡清不掉, 原來不只有我遇到這問題, 很多人也有此困惱, 看這裡 Crazy Q: XCode Image Caches? 從 menu -> Product -> Clean !! It DOES WORK!

2011-07-27

討論後,暫時不管 Rotate 的問題,先固定 UI 為 Landscape 完成相關的功能 DEMO 後,再回頭請美工設計 Portrait 的 Layout

先把 Botton 透過 Interface Builder 畫上去,接下來處理 Button 的背景圖片,一個是按下去的圖片 Active,一個是離開的圖片 Inactive,另外,這一組 Button 是按下去切換的一組,等於是一組 switch,而不是單純的 Button !

先到 iOS UI Element Usage Guidelines 去快速瀏覽所有提供的功能,發現 Segmented Control 可能符合我的需求

像這樣,但我要的是 Button,就得看有沒有辦法客製化,圖片、大小、距離... 如果不行,可能只得回頭自己處理 Exclusive Button & pressed state 的問題了! 

搜尋一下, 這裡說得還頗清楚的 Custom UISegmentedControl, 但還不是我要的, 我要能夠變成幾個獨立的 button !

這裡 Customize segmented control 有一段話值得玩味 like all controls you can subclass it and do whatever you want in custom views

最後, 這篇文章 Custom Segmented Controls for iPhone 講明了 Segemented Controls 的操作習慣和其他的 Element 不同, 按下去就動作了, 而不是等到 release the finger, 那擺明了, 我得跟它說 ByBy 了, 只能用自己的方法來控制了! 就是由 Button 自己偵測自己的狀態, 然後 active 時去把同一組的其他 Botton 給 inactive 囉!

既然如此, 接下來就看如何貼 Button 的皮了 (image), 不過, 在貼皮之前, 要先解決如何讓其中某個 button 處於 default 的 active/pressed 的狀態, 如上面的 IMAP 藍色的狀態, 這裡似乎需要參考這份文件 UIControl Class Reference 裡頭的 Control State, 我得來看看有沒有辦法手動設定

2011-07-28

暫時不理會這個 Button Group & default pressed 的問題, 先解決 Button 貼皮以及按下去後程式的反應

貼皮簡單, 直接在 Interface Builder 操作就可以了

首先, 把設計好的 Button 從 File Manager 拉到 Project Navigator 檔案結構裡

第二步, 選 nib (.xib) 檔案叫出 IB, 點選你要貼皮的 Button, 然後選 Attributes Inspector, 再由下面的 Media Library 拉出你要的圖片放到 Button 即可

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2011-08-09

大致上第一版可以動的UI已經完成,用了iOS標準的MVC架構。會動了以後,接下來就要來處理資料庫的問題,考慮未來可能移植到Android平台,所以就不用iOS的CoreData,而用比較開放的sqlite的方式

入門參考的教學有這裡 

> SQLite 101 for iPhone Developers: Making Our App

> iPhone SDK Tutorial: Reading data from a SQLite Database

arrow
arrow
    全站熱搜

    hulu2020 發表在 痞客邦 留言(0) 人氣()