MyLinearLayout 之 初级学习经验

首先声明本文档纯属原创,如果你喜欢的话请转载

自我感悟


首先介绍下第一印象,感觉MyLayout 很强大不用添加很多的约束就能实现完美实现布局。比如UIScrollView 自动会设置ContentSize,如果内容子视图的超出UIScrollView 的时候就会自动实现滑动,还有就是如果一个等间距,等宽或者等高子视图的布局很简单,少量代码就能完美实现。好了,废话少说,直接上代码。

初级介绍


几个关键字

myMargin(就是子视图距父视图的间距,相当于一次设置了myLeftMargin,myRightMargin,myRightMarginmyBottomMargin, 当然了如果这几个间距不相等就需要分开赋值了),

myWidth(本视图的宽度)

myHeight(本视图的高度)


1.  根据x,y ,width ,height ,将视图显示在固定位置(例如x = 20 , y = 200 , width = 200, height = 40)

你可能直接理解为(如下)

UILabel *label = [[UILabel alloc] init];

label.backgroundColor = [UIColor greenColor];

label.text = @"第一显示子视图请确定位置" ;

label.myLeftMargin = 20 ;   // 设置左边距

label.myTopMargin = 200; ; //设置上边距

label.myHeight = 40 ; //设置高度

label.myWidth = 200; // 设置宽度

label.font = [UIFont systemFontOfSize:20];

label.textAlignment = NSTextAlignmentCenter ;

[self.view addSubview:label];

然后执行,你发现界面上什么都没有,你肯定要问为什么了,首先MyLinearLayout是一种布局视图,只要是界面上显示的一个view,都要加上约束也就是添加MylinearLayout约束,看上面代码你会发现self.view(理论上也就是一个UIView)没有添加约束,好了现在知道原因就可以更改了,

对self.view 添加约束

MyLinearLayout *layout = [MyLinearLayout linearLayoutWithOrientation:MyLayoutViewOrientation_Vert];

layout.myMargin = 0 ;

layout.backgroundColor = [UIColor whiteColor];

layout.wrapContentHeight = YES ; // 设置self.view 的高度是根据子视图高度 来显示也就是变长的

layout.wrapContentWidth = NO ; // 设置self.view 的宽度是定长,现在是self.view 的宽度和window 的宽度一致

[self.view addSubview:layout];

//  或者你也可以这样做

/*

MyLinearLayout *layout = [MyLinearLayout linearLayoutWithOrientation:MyLayoutViewOrientation_Vert];

layout.myMargin = 0 ;

layout.backgroundColor = [UIColor whiteColor];

layout.wrapContentHeight = YES ;

layout.wrapContentWidth = NO ;

self.view = layout ;

*/

上面label代码就可以修改为 (也就是修改最后一句代码为 )

[layout addSubview:label];

这样label就显示出来!显示出来你可能又要问,一般label 就是根据text 内容宽度来显示的,好的下面就介绍


根据UILabel 的text 的内容来显示(text有多宽就显示多宽,高度根据label的font来显示, 如下图所示)

label 中的设置myWidth 和myHeight 的代码去掉,添加 sizeToFit (设置label 宽度)和 flexedHeight = YES(设置label 高度),完整代码就是

UILabel *label = [[UILabel alloc] init];

label.backgroundColor = [UIColor greenColor];

label.text = @"第一显示子视图请确定位置" ;

label.myLeftMargin = 20 ;

label.myTopMargin = 200; ;

label.flexedHeight = YES ; // 确定label 的高度

label.font = [UIFont systemFontOfSize:10];

label.textAlignment = NSTextAlignmentCenter ;

[label sizeToFit];  // 根据内容长度来确定label 的宽度

[layout addSubview:label];


当然还是有人说,我想给一段text,固定label 的宽度,来变长显示,好的代码如下

根据UILabel 中text 的内容,多行显示label 代码如下

UILabel *label = [[UILabel alloc] init];

label.backgroundColor = [UIColor greenColor];

label.text = @"第一显示子视图请确定位置第一显示子视图请确定位置第一显示子视图请确定位置第一显示子视图请确定位置第一显示子视图请确定位置第一显示子视图请确定位置第一显示子视图请确定位置第一显示子视图请确定位置" ;

label.myLeftMargin = 20 ;

label.myRightMargin = 20 ;

label.myTopMargin = 200; ;

label.flexedHeight = YES ;

label.font = [UIFont systemFontOfSize:10];

label.textAlignment = NSTextAlignmentCenter ;

label.numberOfLines = 0;

[layout addSubview:label];

// 显示如下

G

M

T

檢測語言阿尔巴尼亚语阿拉伯语阿塞拜疆语爱尔兰语爱沙尼亚语巴斯克语白俄罗斯语保加利亚语冰岛语波兰语波斯尼亚语波斯语布尔语(南非荷兰语)丹麦语德语俄语法语菲律宾语芬兰语高棉语格鲁吉亚语古吉拉特语哈萨克语海地克里奥尔语韩语豪萨语荷兰语加利西亚语加泰罗尼亚语捷克语卡纳达语克罗地亚语拉丁语拉脱维亚语老挝语立陶宛语罗马尼亚语马尔加什语马耳他语马拉地语马拉雅拉姆语马来语马其顿语毛利语蒙古语孟加拉语缅甸语苗语南非祖鲁语尼泊尔语挪威语旁遮普语葡萄牙语齐切瓦语日语瑞典语塞尔维亚语塞索托语僧伽罗语世界语斯洛伐克语斯洛文尼亚语斯瓦希里语宿务语索马里语塔吉克语泰卢固语泰米尔语泰语土耳其语威尔士语乌尔都语乌克兰语乌兹别克语希伯来语希腊语西班牙语匈牙利语亚美尼亚语伊博语意大利语意第绪语印地语印尼巽他语印尼语印尼爪哇语英语约鲁巴语越南语中文简体中文繁体

阿尔巴尼亚语阿拉伯语阿塞拜疆语爱尔兰语爱沙尼亚语巴斯克语白俄罗斯语保加利亚语冰岛语波兰语波斯尼亚语波斯语布尔语(南非荷兰语)丹麦语德语俄语法语菲律宾语芬兰语高棉语格鲁吉亚语古吉拉特语哈萨克语海地克里奥尔语韩语豪萨语荷兰语加利西亚语加泰罗尼亚语捷克语卡纳达语克罗地亚语拉丁语拉脱维亚语老挝语立陶宛语罗马尼亚语马尔加什语马耳他语马拉地语马拉雅拉姆语马来语马其顿语毛利语蒙古语孟加拉语缅甸语苗语南非祖鲁语尼泊尔语挪威语旁遮普语葡萄牙语齐切瓦语日语瑞典语塞尔维亚语塞索托语僧伽罗语世界语斯洛伐克语斯洛文尼亚语斯瓦希里语宿务语索马里语塔吉克语泰卢固语泰米尔语泰语土耳其语威尔士语乌尔都语乌克兰语乌兹别克语希伯来语希腊语西班牙语匈牙利语亚美尼亚语伊博语意大利语意第绪语印地语印尼巽他语印尼语印尼爪哇语英语约鲁巴语越南语中文简体中文繁体

語言功能限100個字符

選項:歷史:幫助:反饋關閉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容