開始iOS 7中自動佈局教
阿新 • • 發佈:2019-01-10
原文:http://www.cocoachina.com/industry/20131203/7462.html
感謝翻譯小組成員(部落格)熱心翻譯。如果您有不錯的原創或譯文,歡迎提交給我們,更歡迎其他朋友加入我們的翻譯小組(聯絡qq:2408167315)。
==========================================================================
提示:團隊成員Jatthijs Hollemans(iOS 初級系列作者)已經將這篇文章移植到iOS7 feast上。希望你能夠喜歡。
你是否曾經想讓你的app在橫豎屏方向上看起來都表現良好而受挫?是否在做支援iPhone和iPad屏幕布局介面時幾近大小便失禁?今天我將給你帶來好訊息! 一直為大小相同的螢幕設計一個使用者介面並不難,但如果螢幕的尺寸改變的話,UI元素的位置和大小也需要相應的做出改變。 到目前為止,如果你的設計相當的複雜,那麼你必須編寫大量的程式碼來適應這樣的佈局。你應該很高興,現在這樣的情況再也不存在了--iOS6為iPhone和iPad帶來了一個極好的新特性:自動佈局。Xcode 5和 iOS7中對自動佈局做出了改善!如果你曾經嘗試著在Xcode4中使用自動佈局並最終做出放棄,現在是該給Xcode5一次機會了。 在你的程式中,自動佈局不僅可以很容易的支援不同大小的螢幕,一個額外的功能,它也使得本地化幾乎變得微不足道。你不再需要為每種你希望支援的語言建立新的nibs或storyboards,包括像Hebrew或Arabic這樣從右到左的語言。 這個教程將向你展示如何使用Interface Builder開始自動佈局.在- @property (weak, nonatomic) IBOutlet UIView *topLeftView;
- @property (weak, nonatomic) IBOutlet UIView *topRightView;
- @property (weak, nonatomic) IBOutlet UIView *bottomView;
- - (void)viewWillLayoutSubviews
- {
- if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
- {
- CGRect rect = self.topLeftView.frame;
- rect.size.width = 254;
- rect.size.height = 130;
- self.topLeftView.frame = rect;
- rect = self.topRightView.frame;
- rect.origin.x = 294;
- rect.size.width = 254;
- rect.size.height = 130;
- self.topRightView.frame = rect;
- rect = self.bottomView.frame;
- rect.origin.y = 170;
- rect.size.width = 528;
- rect.size.height = 130;
- self.bottomView.frame = rect;
- }
- else
- {
- CGRect rect = self.topLeftView.frame;
- rect.size.width = 130;
- rect.size.height = 254;
- self.topLeftView.frame = rect;
- rect = self.topRightView.frame;
- rect.origin.x = 170;
- rect.size.width = 130;
- rect.size.height = 254;
- self.topRightView.frame = rect;
- rect = self.bottomView.frame;
- rect.origin.y = 295;
- rect.size.width = 280;
- rect.size.height = 254;
- self.bottomView.frame = rect;
- }
- }
CocoaChina是全球最大的蘋果開發中文社群,官方微信每日定時推送各種精彩的研發教程資源和工具,介紹app推廣營銷經驗,最新企業招聘和外包資訊,以及Cocos2d引擎、Cocos Studio開發工具包的最新動態及培訓資訊。關注微信可以第一時間瞭解最新產品和服務動態,微信在手,天下我有!
請搜尋微訊號“CocoaChina”關注我們!