Just a Computer Graphics Studio & My Life

Posts tagged ‘framework’

[iOS] 取得本機相片 (Fetch Photos from Photo Library)

現代人使用智慧手機已經脫離不了「相機」,於是許多應用需要取得本機相片 (Fetch Photos from Photo Library),我們開發者要怎麼做,才能輕易取得使用者珍貴的相片呢?

取得本機相片 (Fetch Photos from Photo Library).jpg

(繼續閱讀…)

廣告

[iOS] Objective C與Javascript的溝通

App和Web雙向溝通:

  • Call Javascript function from Objective-C
  • Call Objective-C function from Javascript

一直是我們想要達成的目標,而先前的兩篇文章:

也就分別實現雙向溝通,只是過程不夠直接,且會衍生一些毛問題。以至於有開源WebViewJavascriptBridge已有6000多顆星,儘管我沒用過XD~

這套件自我介紹:

An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews

iOS 7以後,SDK發展出JavaScriptCore FrameworkObjective C與Javascript的溝通變得更便利!

(繼續閱讀…)

[iOS] WatchKit 與 UIKit

Apple Watch即將上市,對iOS開發者而言,無疑是個一定要了解的全新裝置,特別是在使用者體驗上,如何設計適合小螢幕的界面。這種改變從電腦轉移到手機已經歷過一次,如今要從手機移轉到手錶,螢幕可是越變越小呢~

手機上所呈現的界面是透過UIKit framework,而手錶所呈現的界面則是透過WatchKit framework,這兩者有相似的地方,也有許多不一樣的地方

WatchKit 與 UIKit

基本上,WatchKit是UIKit的簡化版,之後Apple應該會根據需求新增修改些property或method。一般而言,手錶的功用是瀏覽重於互動,所以framework少有互動的設計。

WatchKit的元件

WKInterfaceObject繼承於NSObject。WKInterfaceImage繼承於WKInterfaceObject、WKInterfaceLabel繼承於WKInterfaceObject,其餘依此類推,都是繼承於WKInterfaceObject。

其property與method也很陽春,只有一些基本的設定。

  • WKInterfaceObject

#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import <WatchKit/WKDefines.h>

WK_CLASS_AVAILABLE_IOS(8_2)
@interface WKInterfaceObject : NSObject

- (instancetype)init NS_UNAVAILABLE;

- (void)setHidden:(BOOL)hidden;
- (void)setAlpha:(CGFloat)alpha;

- (void)setWidth:(CGFloat)width;   // setting to 0 means use natural size. ignored for table
- (void)setHeight:(CGFloat)height;

@property(nonatomic,readonly,copy) NSString *interfaceProperty;   // same as controller's property name

@end

@interface WKInterfaceObject (WKAccessibility)

- (void)setAccessibilityLabel:(NSString *)accessibilityLabel;
- (void)setAccessibilityHint:(NSString *)accessibilityHint;
- (void)setAccessibilityValue:(NSString *)accessibilityValue;

@end
  • WKInterfaceImage

#import <Foundation/Foundation.h>
#import <WatchKit/WKDefines.h>
#import <WatchKit/WKInterfaceObject.h>

@class UIImage;

WK_CLASS_AVAILABLE_IOS(8_2)
@interface WKInterfaceImage : WKInterfaceObject

- (void)setImage:(UIImage *)image;
- (void)setImageData:(NSData *)imageData;
- (void)setImageNamed:(NSString *)imageName;

- (void)startAnimating;	      // play all images repeatedly using duration specified in interface description
- (void)startAnimatingWithImagesInRange:(NSRange)imageRange duration:(NSTimeInterval)duration repeatCount:(NSInteger)repeatCount; // play subset of images for a certain number of times. 0 means repeat until stop
- (void)stopAnimating;

@end

我們很驚訝地發現,居然沒有frame這個特性!也就是我們無法設定其座標(但可設定長與高),也無法使用Auto Layout。實際上,WatchKit界面元件只能在格子中透過邊界相對位置來放置。

還有許多特性需要好好了解,因為本來就不該把手錶當作手機來設計,而簡化自然有其好處!持續去研究吧~

參考:WatchKit – NSHipster。

[iOS] 動作框架 (Motion Framework)

這週同事講到2014 WWDC中一個相當有趣的session,跟感應器有關係,喜歡運動的人有福啦~

612 motion tracking with the core motion framework

motion framework03

透過M7動作處理器加上感應器,可以全天候(24小時,一週七天)地偵測。

(繼續閱讀…)

WWDC2014亮點簡介

WWDC2014活動已經過三個禮拜,許多新的亮點持續探索中,持續鑽研累積基礎知識與技術,秋季一到就能馳騁千里!看到一張圖「蘋果WWDC2014給開發者帶來了什麼?」,言簡意賅且有趣地簡介其特色,這是對岸的朋友所製作,我想之後會越來越需要看簡體中文了~

WWDC2014

參考:

[iOS] 家長閘 (Parental Gate)

實在沒有想太多,就把要給兒童使用的APP送審,結果就是被拒絕 (Reject),原因是沒有注意到iOS 7心的送審規定。這才想起幾個月之前的新聞,有使用者反映小孩子會不小心誤觸應用內購買,建議蘋果可以建立配套措施,沒想到⋯⋯這個兒童防護機制已經實行中!

Parental Gate Passcode

(繼續閱讀…)

[iOS] 遺漏增加框架

原以為不會再犯遺漏增加框架這個錯誤,沒想到還是發生這個問題了!哈~原因是和夥伴協同開發,總是會修改到專案檔的CodeSign,時常你推我拉,就把原本加框架(framework)的設定給覆蓋掉,而且編譯錯誤訊息讓人摸不著頭緒~

ld: ‘objc-class-ref’ in /Users/jason/Library/Developer/Xcode/DerivedData/HappyLife-enmzswezatuldlgagktefheghves/Build/Intermediates/HappyLife.build/Debug-iphoneos/HappyLife.build/Objects-normal/armv7/HLEditPhotoViewController.o contains undefined reference for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: