1. 程式人生 > >Masonry自動佈局詳解一:基本用法

Masonry自動佈局詳解一:基本用法

說到iOS自動佈局,有很多的解決辦法。有的人使用xib/storyboard自動佈局,也有人使用frame來適配。對於前者,筆者並不喜歡,也不支援。對於後者,更是麻煩,到處計算高度、寬度等,千萬大量程式碼的冗餘,對維護和開發的效率都很低。

筆者在這裡介紹純程式碼自動佈局的第三方庫:Masonry。這個庫使用率相當高,在全世界都有大量的開發者在使用,其star數量也是相當高的。

效果圖

本節詳解Masonry的基本用法,先看看效果圖:

image

我們這裡要佈局使這三個控制元件的高度一致,而綠色和紅色的控制元件高度和寬度相待。

核心程式碼

看下程式碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 -(void)viewDidLoad{ [superviewDidLoad]; UIView*greenView=UIView.new; greenView.backgroundColor=UIColor.greenColor; greenView.layer.borderColor=UIColor.blackColor.CGColor; greenView.layer.borderWidth=2; [self.view addSubview:greenView]; UIView*redView=UIView.new; redView
.backgroundColor=UIColor.redColor; redView.layer.borderColor=UIColor.blackColor.CGColor; redView.layer.borderWidth=2; [self.view addSubview:redView]; UIView*blueView=UIView.new; blueView.backgroundColor=UIColor.blueColor; blueView.layer.borderColor=UIColor.blackColor.CGColor; blueView
.

相關推薦

Masonry自動佈局基本用法

說到iOS自動佈局,有很多的解決辦法。有的人使用xib/storyboard自動佈局,也有人使用frame來適配。對於前者,筆者並不喜歡,也不支援。對於後者,更是麻煩,到處計算高度、寬度等,千萬大量程式碼的冗餘,對維護和開發的效率都很低。 筆者在這裡介紹純程式碼

lotou基本概念

lotou是一個基於golang的支援分散式的輕量級遊戲伺服器框架,主要提供遊戲伺服器叢集的訊息轉發程式碼倉庫 lotou提供了三種不同的訊息傳送方式: 1.Send 用於普通的訊息推送,不需要返回,傳送之後就不再關注 2.Request 非同步非阻塞請

python 對象類型數字(上)

結果 dom 運行 精度 升級 方法 函數 般的 代碼 一:python 的數字類型: a)整數和浮點數 b)復數 c)固定精度的十進制數 d)有理分數 e)集合 f)布爾類型 g)無窮的整數精度 h)各種數字內置函數和模塊 二:各種數字類型的詳解   1,數字常量:pyt

P2P技術()NAT——詳細原理、P2P簡介(轉再)

這是一篇介紹NAT技術要點的精華文章,來自華3通訊官方資料庫,文中對NAT技術原理的介紹很全面也很權威,對網路應用的應用層開發人員而言有很高的參考價值。   《P2P技術詳解》系列文章 ➊ 本文是《P2P理論詳解》系列文章中的第2篇,總目錄如下:   ➋

平衡二叉樹各種演算法紅黑樹

平衡二叉樹(Balanced Binary Tree)具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。平衡二叉樹的常用演算法有紅黑樹、AVL、Treap、伸展樹、SBT等。最小二叉平衡樹的節點的公式如下 F(n)=

Netty4理解Netty的設計理念NIO

有一套統一的API來處理非同步和同步程式設計模式使用非常靈活簡單但卻強大的執行緒機制業務元件分離方便重用極小的縮減不必要的Memory Copy     Netty開始-理解Netty的設計理念NIONetty開始-理解Netty的設計理念NIO 二、非同步程式設計模式設計      一般來說網路程式設

ES6複習ES5 新增內容

ES5 新增內容 ES6 最近炒得火熱,準備寫一下ES6規範的主要內容。在這之前先複習一下ES5相關的內容。 ES5 總體來說改動很少,最重要的是如下幾個改動: use strict 可以在函式定義的第一行通過一個字串語法把這個函式宣告為 嚴格模式

java ioFile類

File 類:檔案和目錄路徑名的抽象表示。 注意:File 類只能操作檔案的屬性,檔案的內容是不能操作的。   1、File 類的欄位     我們知道,各個平臺之間的路徑分隔符是不一樣的。   ①、對於UNIX平臺,絕對路徑名的字首始終為"/" 。

VRTK外掛鐳射和移動

反過來說Play Space Falling 選項是在玩家頭盔在一個物件上方時會自動傳送到一個物件的頂部,這一點在模擬爬梯子時很有用,不需要使用指標光束定位。如果這個選項關閉,玩家就能在他們所站在的物件的同樣y高度的空中行走(也就是有一部分遊玩區在物件外部)。 (adsbygoog

【原創】Junit4Junit總體介紹

1 package abstractions.domain; 2 3 import static org.hamcrest.Matchers.is; 4 import static org.junit.Assert.assertThat; 5 6

C#Socket教程同步TCP程式設計

服務端重要類: TcpListener類,伺服器監聽類,用於監聽和連線客戶端,該類重要方法如下: 構造方法: public TcpListener(IPEndPoint iep); public TcpListener(IPAddress localAddre

JUnit學習筆記()基本用法

JUnit學習筆記(一):基本用法 JUnit是Java的單元測試框架。JUnit提倡“先測試後編碼”的理念,強調建立測試資料的程式碼,可以先測試,再應用。 框架的特點:     JUnit

Spring Cloud之Gateway()基本瞭解及謂詞

版本:2.0.2.RELEASE 連結:http://spring.io/projects/spring-cloud-gateway#overview 本章主要目錄如下 Spring Cloud Gateway是什麼? Spring Cloud Gateway特徵有什麼? S

佈局高度已知,佈局一個三欄佈局,左欄和右欄寬度為200px,中間自適應 浮動佈局

需求:高度已知為200px,寫出三欄佈局,左欄和右欄各位200px,中間自適應,如下圖所示: 方法一:float浮動佈局 原理是:定義三個區塊,需要注意的是中間的區塊放在右邊區塊的下面,統一設定高度為200px,然後設定左邊欄寬度為200px並且float:left,設定右邊欄寬度為200px並且fl

mysql基礎-資料庫連線、建立、刪除、選擇等基本操作()

一、通過cmd連結到資料庫 或者 彈出: 二、通過cmd建立與刪除database 2.1create database [databasename] ERROR 1007 (HY000): Can’t create database ‘mytest’; database exists 加上IF N

【深度學習系列】卷積神經網路CNN原理()——基本原理

轉自:https://www.cnblogs.com/charlotte77/p/7759802.html 上篇文章我們給出了用paddlepaddle來做手寫數字識別的示例,並對網路結構進行到了調整,提高了識別的精度。有的同學表示不是很理解原理,為什麼傳統的機

1.1 4種基本佈局

整理了部分入門級佈局,可以無聊的時候看看二、相對佈局RelativeLayout又稱相對佈局,相對LinearLayout的排列規則更顯隨意,例如修改activity_main.xml中的程式碼如下所示:<RelativeLayout xmlns:android="ht

C++筆記模板()

C++模板   模板是C++支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。   模板是一種對型別進行引數化的工具;   通常有兩種形式:函式模板和類模板;   函式模板針對僅引

NTFS檔案系統()之硬碟基本資訊

本文參考自部落格 一般硬碟正面貼有產品標籤,主要包括廠家資訊和產品資訊,如商標、型號、序列號、生產日期、容量、引數和主從設定方法等。這些資訊是正確使用硬碟的基本依據,下面將逐步介紹它們的含義。 硬碟主要由盤體、控制電路板和介面部件等組成,如圖1-1所示。

PopUpWindow使用()——基本使用

前言:不要嫌前進的慢,只要一直在前進就好。相關文章:有同學講到想要知道PopUpWindow的知識,這裡就給大家講一講PopUpWindow的基本用法和原理吧。這段時間部落格可能會更新比較慢,因為你懂的 !!-_- ,往左看公告,嘿嘿。 先看一下我們要做的效果:這個效果很