在Xib中繪制1像素的線

我們在寫UI界面的時候有時會需要繪制一根 1pixel 的線來充當分隔線展东,類似UITableView 各個 cell 之間的分隔線。通常我們可以通過添加一個 view 來實現(xiàn)解藻,如果是橫線丙号,就設定這個view 的高度為 1pexil,如果是豎線,就設其寬度為 1pixel也切,注意此處的單位是 pixel只壳,即像素。由于在 retina 屏幕中蛤高,iOS坐標系中的一個點(point)的大小并不等于1個像素蚣旱,在4/4s、5/5s戴陡、6/6s中塞绿,1point == 2pixel,而在 6plus/6splus 上恤批,1point == 3pixel异吻,因此實際上我們想要繪制 1pixel 的線,需要設置的高度和寬度是0.5或者 1/3,也就是 < 1的诀浪。這在代碼布局中很好辦到棋返,直接寫上小數(shù)就可以了。但是在 xib 中雷猪,這就是一個問題了睛竣,因為 xib 中設置寬高,或者約束的時候求摇,即使輸入小數(shù)射沟,系統(tǒng)也會自動給我們四舍五入,轉換成整數(shù)与境,這就給我們設置 1pixel 的線帶來了麻煩验夯。
我在 Google 中查了一下這個問題,最終找到了一個相對簡單的解決方案:

首先創(chuàng)建 NSLayoutConstraint 的子類 NSLayoutConstraintOnePixelLine

// NSLayoutConstraintOnePixelLine.m
#import"NSLayoutConstraintOnePixelLine.h"
@implementation NSLayoutConstraintOnePixelLine

- (void)awakeFromNib { 
  [super awakeFromNib]; 
  if (self.constant == 1) { 
    self.constant = 1 / [UIScreen mainScreen].scale; 
  }
}
@end

然后給我們想要設置為 1pixel 的 view 設置上約束摔刁,大小為 1挥转。


再把該約束所屬的類改成剛剛寫的子類就可以了。

用這種方法共屈,通過修改代碼中的 constant 屬性的值绑谣,我們就可以任意修改其他約束的值。

閱讀原文/原文地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末趁俊,一起剝皮案震驚了整個濱河市域仇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寺擂,老刑警劉巖暇务,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異怔软,居然都是意外死亡垦细,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門挡逼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來括改,“玉大人,你說我怎么就攤上這事家坎≈瞿埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵虱疏,是天一觀的道長惹骂。 經(jīng)常有香客問我,道長做瞪,這世上最難降的妖魔是什么对粪? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任右冻,我火速辦了婚禮,結果婚禮上著拭,老公的妹妹穿的比我還像新娘纱扭。我一直安慰自己,他們只是感情好儡遮,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布乳蛾。 她就那樣靜靜地躺著,像睡著了一般鄙币。 火紅的嫁衣襯著肌膚如雪屡久。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天爱榔,我揣著相機與錄音,去河邊找鬼糙及。 笑死详幽,一個胖子當著我的面吹牛,可吹牛的內容都是我干的浸锨。 我是一名探鬼主播唇聘,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼柱搜!你這毒婦竟也來了迟郎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤聪蘸,失蹤者是張志新(化名)和其女友劉穎宪肖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體健爬,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡控乾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了娜遵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜕衡。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖设拟,靈堂內的尸體忽然破棺而出慨仿,到底是詐尸還是另有隱情,我是刑警寧澤纳胧,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布镰吆,位于F島的核電站,受9級特大地震影響躲雅,放射性物質發(fā)生泄漏鼎姊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望相寇。 院中可真熱鬧慰于,春花似錦、人聲如沸唤衫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佳励。三九已至休里,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赃承,已是汗流浹背妙黍。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞧剖,地道東北人拭嫁。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像抓于,于是被迫代替她去往敵國和親做粤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容