顯示具有 xcode 標籤的文章。 顯示所有文章
顯示具有 xcode 標籤的文章。 顯示所有文章

[xcode] 逃來逃去的按鈕

.h
內部宣告了兩個按鈕一個label

score用來存放數值


.m

直接用程式碼做按鈕的宣告,所以storyboard上面啥都不用做。

這邊forcontrolevents的部分跟一般宣告的touchupinside不同,

使用touchdown是在手指接觸的那一刻就觸發事件,由於這個類別

舊版上面沒有用過,不清楚是不是以前就有。

[xcode] UILocalNotification 本地通知

UILocalNotification 本地通知

一般的本地通知多用在鬧鐘提醒,用法也很簡單。

使用前要先註冊,當開啟app時會詢問使用者是不是要授權。


fireDate 目前時間延後10秒

alertBody 顯示內容

timeZone 時區

soundName 通知音效

applicationIconBadgeNumber  顯示在app的通知數

[xcode] 相機 動畫 模擬pokemon go

最近很夯的Pokemon go,遊戲內容是玩家要實際在地圖上行走,然後可以捕獲神奇寶貝

,由於捕獲的畫面,啟動了相機辨識呈現VR影像,另外也有結合陀螺儀去做方位,

所以就簡單的來介紹一下相機的使用方式,順便簡單的模擬一下pokemon的畫面。

完成會如下面這樣,這裡跟pokemon go 不同的是採用的是2d圖檔呈現而已,

pokemon go使用的是Unity去建立體模型。





[xcode] Google Firebase 使用者建立(Google Sign In)

Google相關說明如下


這邊採用的是Google Sign In 方式

在開始使用之前要先

pod 'firebase/Auth'
pod 'GoogleSignIn'

完成之後記得重新install


[Xcode] Google Firebase 使用 for Mac

這邊是用console也就是新版本的Firebase建立

https://console.firebase.google.com/

設定 https://firebase.google.com/docs/ios/setup


由於安裝cocoapods又需要ruby,那要安裝ruby又需要Homebrew,一整個循環下來
卻讓我得到這個,找了一下又沒相關解法。



不過還是講下流程


[xcode] UITableView 新增 刪除 移動

稍微的試試看swift語法,並且實作出tableview 基礎功能

Storyboard 只有新增一個nav,然後設定custom class 為loginview

[xcode] 背景選單

在IOS的app中,有使用背景選單的就是facebook了

透過一個UINavigationController的按鈕&手指滑動來控制背景選單。


軟體的執行畫面如下  初始載入的頁面


[xcode] Delegate使用


Delegate 光看字面,其實很難理解到底是怎麼一回事。

有些時候甚至看了程式碼,也搞不清楚到底是怎樣作用,

所以這邊就來講解一下。

下面是.h


當我們要在ViewController 裡面使用tableview 時候 就需要把tableview delegate給

叫進來,並且在.m中要把

tableview.delegate = self;  
tableview.dataSource = self;

接著要宣告相關的副程式

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath();

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section();


-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView();


以上就是tableview 必須要的,所以uitableviewdelegate就是一個delegate範例。


所以delegate就是你把想做的事情寫在裡面,當你想用的時候,把數值或資料丟進去

然後他會回送做完的結果。


因此當你有一段程式碼是需要常常被使用到,並且要將結果回傳的,那就必須要用delegate

,而且你也可以自己寫delegate。

[xcode] 頁面切換 2 Navigation Controller

Navigation Controller 頁面切換


Storyboard 會有一個Navigation Controller連接到viewcontroller,

作為root view controller

[xcode] 頁面切換 1

頁面切換同樣也是不可或缺的基礎,但總不能樣樣都是從Storyboard來連連看吧!

實際上應用時,不可能將所有的按鈕都用連連看的方式去做,或者是在一些動態產生

變化按鈕,又要對應不同頁面時,就要使用這樣的方式來做。


Storyboard規劃如下 

有兩個頁面

Viewcontroller

viewcontroller2

並沒有任何按鈕跟連線連到Viewcontroller2

[xcode] UITableView 新增 刪除 移動

在Ios當中tableview是最常用的,不管是資料顯示或圖片,只要是需要列表處理

都會用到。

這個範例都是用程式碼寫的,所以storyboard上就不會顯示了。



實際執行會長這樣





[xcode] applicationDidBecomeActive 程式進入觸發


在檔案
AppDelegate.m


當程式進入之後執行

- (void)applicationDidBecomeActive:(UIApplication *)application


會運作的方式為

  • 第一次進入
  • 程式進入背景,重新回到程式都會執行


大部份都是網路資料更新使用,那這邊要來說的是,當專案有很多頁面時候

需要怎樣判斷不同頁面而作更新。




AppDelegate.h 

載入要判斷跟執行的class


#import "ViewController.h"


AppDelegate.m 


[xcode]JSController 搖桿

對於有玩遊戲的人,虛擬搖桿應該不會太陌生。

JSController 搖桿

https://github.com/jasarien/JSController

上面是作者開放的原始碼,有需要的可以直接下載~

不過如果是cocos2d遊戲類型的搖桿,就不相容。

在文件內有三個類別

JSDPad

JSAnalogueStick

JSButton



下載回來直接用模擬器,就可以看到上面的畫面。


[xcode] UIbutton 按鈕 按鈕事件


來介紹一下Xcode UIbutton吧

下圖可以看到我在StoryBoard裡面已經拉進去了一個Button




[xcode] Google analytics SDK IOS

補充:
此版本已經支援IOS7 64bit 可以使用了。
3.03
https://dl.google.com/googleanalyticsservices/GoogleAnalyticsServicesiOS_3.03.zip

--------------------------------------------------------------------------------------------------------
---注意!!目前下載回來的SDK中,還未支援64bit。
--所以iOS7 在編譯時候會出錯。(missing required architecture arm64)
--只能等待放出更新了!~
--------------------------------------------------------------------------------------------------------

需要在App裡面埋下分析回報,如果有自己的伺服器可以使用

這部分就可以自己寫,沒有伺服器但也想要搜集一部份資料,那就是用

這個啦。

網站   http://www.google.com/analytics/


到管理員->新增帳戶->行動應用程式



[xcode] Dropbox SDK 使用 IOS

DropBox SDK 分成了三類型

  1. Datastore API (文字類型)
  2. Sync API (文字&圖檔)
  3. Core API (任何資料)

依照使用的資料形態,選擇要用哪個API。

1.Datastore - 類似資料庫的形式。

2.Sync - 文字&圖檔都儲存在Dropbox上,可以上傳並且下載,多裝置存取同一資訊

比較方便。

3.Core API - 變化性較大,複雜性高的資料存取,可以自己撰寫自己的上傳下載方式。





Sync API

下載&教學都在此,https://www.dropbox.com/developers/sync


先在網站上建立app資訊。


[xcode] In-App Purchase Rejected 問題

下面這段是APPLE 駁回的說明。

大致上是說內購項目(我這邊使用的是一次性購買),需要放上一個Restored的方式,以防使用者在其他裝置上

可以下載不需要在購買一次。

We found that while your app offers In-App Purchase(s) that can be restored, it does not include the required "Restore" feature to allow users to restore the previously purchased In-App Purchase(s), as specified in Restoring Transactions section of the In-App Purchase Programming Guide:

"...if your application supports product types that must be restorable, you must include an interface that allows users to restore these purchases. This interface allows a user to add the product to other devices or, if the original device was wiped, to restore the transaction on the original device."

To restore previously purchased In-App Purchase products, it would be appropriate to provide a "Restore" button and initiate the restore process when the "Restore" button is tapped by the user.

For more information about restoring transactions and verifying store receipt, please refer to the In-App Purchase Programming Guide.


不過我一直在SanBox測試中,遇到itunes connect  錯誤。在所有測試上面卻只有6.0 ,6.1可以動作。

網路上也有討論到,不過怎都沒個好的解決方法~~~




在這次的改版中,還遇到ios6.0載入game center直接crash,在5.0,5.1,6.1都沒問題。最後發現是

登入時的橫式版面所造成的。不過在iOS6.1並不會有錯誤,感覺蠻怪的。

最後是解決的方法。

1.是在設定上多選取Portrait,不過我的程式並沒有設計這個界面。




2.在appDelegate.m中加入

- (NSUInteger)application:(UIApplication *)applicationsupportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return (UIInterfaceOrientationMaskAll);
}



說實在的gamecenter實在有很多麻煩之處。很多時候是因為版本更新,新舊版本的判別問題,

常常為了一小個功能卡了好幾天@~@

[xcode] Apple iAd

從申請通過ios開發者到現在,大約一個月時間,也上架了一款免費軟體,使用iad作為廣告

平台,但是iad的開通直到最近才可以開始使用,一度讓我覺得,是我的軟體有問題!

也就是說當你在app裡面導入廣告banner,在模擬器上可以運作就ok了,而實際上要

開通iad還需要到itunes connect,右邊欄有個叫做iad Network,才算真的啟用iad。


上架第一個帶有廣告的軟體後,記得隔一段時間就到

Manage Your Applications->自己上架的app->Manage iads


如果還沒任何可以設定的就是還沒啟用,上圖就是已經啟用過,並且會問你是不是對小屁孩

所開發的。

當你自己點選了Enable後,你的itunes connect 登入就會向最上面那張圖一樣多了iad network的選項

點進去後就會告訴你iad是不是啟用了。目前我的app還是在test iad階段。

剩下的等,下一步後怎樣再說吧!

[xcode] AudioServicesPlaySystemSound 簡短音效


首先要build phases->link binary with libraries->加入audiotoolbox.framework
接著在.h 加入
#import  <AudioToolbox/AudioToolbox.h>

CFBundleRef
mainbundle = CFBundleGetMainBundle();
CFURLRef soundfileurl;
soundfileurl = CFBundleCopyResourceURL(mainbundle, (CFStringRef)@"water",CFSTR("wav"),NULL);
UInt32 soundid;   
AudioServicesCreateSystemSoundID(soundfileurl, &soundid);

AudioServicesPlaySystemSound(soundid);  //播放音效




water.wav 是音效檔名稱

此行是當記憶體低落的時候把音效關閉.
AudioServicesDisposeSystemSoundID(soundid);

[xcode]第一個app

終於自己生產了個app,xcode並不是很好學習,而且遇到問題大多數都是英文文章。
程式的規劃跟內容還是有很大的改進空間。

我在思考,如果已經有網路購物車系統,那還需要透過app直接訂購嘛?
這個功能我並沒有放在app裡面,因為需要更動的太多,尤其手機可以直接到網站去下訂,
到底要在網頁裡開發手機版,還是直接放入app裡面實在是很兩難。

而且app也只能夠給idevice的使用者,跨平台也是一個考慮的點,下個階段應該要將網站跟app
之間的互動弄好。