注意centerX的使用

最近在增加项目的功能,写着写着就发现一个问题:

先上图来展示结果 

为了适配label右上角的红圆圈的位置,觉得很简单的,但是一不小心就掉进陷阱了。

采用的方案是 :封装一个包含着imageView,底部label和numlabel的控件 并且考虑覆盖一个button,来监听点击事件。

底部的汉字的label采用居中显示的,并且位置也是居中,但是呢这个居中就得注意了:

self.subTitle.centerX = self.centerX;(⊙o⊙)哦一不小心掉进去了,然后显示的结果真是匪夷所思,

已成交怎么跑到第三个位置了。

查看控件的结构层次:

怎么也找不到其他的来个label的。

当时也没在意,用其他方法搞定了,修复显示位置的偏差。年假过来发现还是有其他部分用到这个封装的控件 ,

label的问题只要修改成self.subTitle.centerX = self.centerX;就会出现位置偏差,

再仔细想一下,这个centerX是相对谁,(⊙o⊙)…底部的label被添加到封装的控件了 她的位置就应该相对其父控件(即封装的控件)

这将导致位置的偏差,就不足为奇了,self的centeX 是在整个屏幕的绝对位置,而subtitle的centerX则是相对于其父控件的位置

,所以就导致 第一个label显示正常,但是第二个就会随着偏移一个距离,正好偏移到第三个位置,这时的第三个subtitle的x方向

已经偏移到屏幕界外了!so使用UIView + Extension 确实方便,但是问题就是如果不注意控件的层次关系就会导致显示的偏差。

修正之后的代码就很容易知道了:

self.subTitle.centerX = self.width/2;

使用UIView+Extension请注意:令人捉急的centerX导致子控件显示位置不对的矫正相关推荐

  1. 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    文章目录 一. 代码生成控件 1. 创建设置项目 ( 1 ) 创建项目 ( ① 选择 Create a new Xcode project | ② 创建 Single View Application ...

  2. DateChooser控件发布ASP.NET 2.0新版(我的ASP.NET 2.0控件开发书的第二个阶段项目)[请大家一定注意版本的更新,下载最新版]...

    已更新实用版:DateChooser ASP.NET 2.0版 之实用版 请大家一定注意版本的更新,下载最新版 DateChooser的ASP.NET 1.x版在二年前就发布了,二年以来,ASP.NE ...

  3. UIView上的控件使用push方法跳转

    有时候在项目中,为了保持前后页面的推进方式跳转方式一致,会在通过UIview上的控件跳到另一个Controller上,所以,这时候就需要用到这种方式了,当然,present方法可以实现跳转但是样式可能 ...

  4. [原]请留心asp:Image控件中的ImageUrl属性

    今天快下班的时候,打开自己做的页面,在页面上(用的是Firefox)随便点点,检查看看有没有什么地方要修改的.但就是这简单的动作,切发现了一个让我郁闷的.同时也花了我将近两个小时才解决的问题----空 ...

  5. login控件“您的登录尝试不成功。请重试”的解决方法

    login控件"您的登录尝试不成功.请重试"的解决方法 原文:login控件"您的登录尝试不成功.请重试"的解决方法 遇到login控件"您的登录尝试 ...

  6. SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...

    本文将示例如何运用前篇所写知识来建立一个用户自定义的登录控件.此控件界面非常简单,主要涉及的知识点是:   如何创建用户控件(包括对此控件的自定义事件和属性的编写,此处我们将创建一个名为LoginBo ...

  7. panel中html怎么写,panel控件有什么用 请写出Panel控件的用途

    当多个panel控件重叠时,把一个panel的visible/设置为true,其它的设置为f例如有3个panel,分别为panel1,panel2,panel3 如果重叠的话,把他们的大小设置为相同大 ...

  8. jquery出现“为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件。请单击这里获取选项...”的解决办法

    为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件.请单击这里获取选项... 方法一: 在本地调试html页,如果其中包含js或flash,IE经常会提示" ...

  9. 使用web服务器控件显示页面,服务器_Web服务器控件:TextBox控件,阅读此文请先查看网页教学网 - phpStudy...

    阅读此文请先查看网页教学网的:ASP.NET入门教程:Web服务器控件,简单讲述了Web服务器控件的使用方法. 定义和用法 TextBox 控件用于创建用户可输入文本的文本框.创建单行和多行文本框. ...

最新文章

  1. 利用日志审计追踪APT***
  2. 如何检测文本文件的编码/代码页
  3. Yahoo!网站性能最佳体验的34条黄金守则
  4. 小甲鱼-013元组tuple:上了枷锁的列表
  5. 转: The Code Commandments: Best Practices for Objective-C Coding (updated for ARC)
  6. 设置静态ip上网_开始使用第一步:连上网线换个皮
  7. 推荐Linux内核书籍
  8. ssm mysql增删改查_SSM配置并实现简单的数据库增删改查操作
  9. 15 年经验专家解读 IIoT 的挑战及应对思路!
  10. android layout 开关,Android多状态开关
  11. 自己闲着没事整理的人工智能的思维导图
  12. discuz代码解析(一、初始化应用的过程)
  13. 亲爱的,别把上帝缩小了 ---- 读书笔记3
  14. 2009中国情爱报告:超4成未婚女性担心嫁不出去
  15. 计算机专业有非全日制研究生,计算机专业有双证在职研究生吗?
  16. Linux解决僵尸进程的几种方式,SIGCHLD信号设置SIG_IGN处理方式等
  17. Revit二次开发-根据名称获取标高
  18. elasticsearch analysis模块 自定义分词 拼音分词 同义词 停词
  19. virgo,基于osgi的模块化运行容器
  20. 利用面积周长焊点判断

热门文章

  1. 百度惠生活升级:开始并入百度搜索排名
  2. python刷微博关注_[代码全屏查看]-python刷新浪微博粉丝
  3. 程序员:妹妹高考650多,她想选择互联网专业,我该怎么劝?
  4. Window类似Alfred的搜索软件——Wox
  5. 滴滴出行数据应用平台建设实践
  6. 如果一定要为元宇宙寻找一个“母体”的话,区块链是当仁不让的
  7. nyoj 779-兰州烧饼 (ceil)
  8. 常见拉丁文读法,肯定用得着~
  9. 聚划算加码“百亿补贴”背后,不仅仅是为了下沉
  10. 戴森空气净化器php00使用,戴森空气净化器使用—戴森空气净化器使用方法