ios 通过设置UI控件的center和size来设置位置时需注意!

跨平台游戏移植实战:从PC到移动端的核心技术解析与工程实践 跨平台开发是游戏与软件工程中的核心挑战,其本质在于让同一套代码与资源在不同硬件架构、操作系统和应用生态中无缝运行。其技术原理主要围绕抽象层设计、条件编译与平台特定API的封装展开,旨在屏蔽底层差异。这项技术的核心价值在于最大化代码复用、降低维护成本并扩大产品受众面,尤其在移动游戏、教育应用和企业工具等领域应用广泛。本文以Unity引擎为例,深入剖析了输入系统从键鼠到触控的映射、图形渲染的性能适配、以及文件存储的路径处理等关键环节,系统讲解了如何通过资源优化、性能剖析和平台SDK集成,高效完成一次从PC到移动 阅读详情

今天在设置按钮位置时,使用center和size属性来控制,但是发现怎么也不对,研究了一下发现,当使用UI控件的center和size属性来控制位置时,好像是有先后顺序的:

下面看一段代码,将红色的view在控制器view中居中。

首先是设置center的代码:

    CGPoint center = redView.center;
    center.x = self.view.frame.size.width / 2;
    center.y = self.view.frame.size.height / 2;
    redView.center = center;
然后是设置尺寸的代码:

    CGRect frame = redView.frame;
    frame.size = CGSizeMake(150, 150);
    redView.frame = frame;


这样设置的结果是:



显然,之前设置的center属性貌似变成了origin属性,红色view的origin居中了,而center跟着就偏了。

而如果先设置尺寸,在设置center,即将上面两段代码的顺序调换,结果就变成了:


可以看到按钮位置正确了。


这里比较容易造成混淆,难道必须先设置位置,再设置尺寸,才能正确?当然不是,来分析一下上面的代码:

    CGPoint center = redView.center;
    center.x = self.view.frame.size.width / 2;
    center.y = self.view.frame.size.height / 2;
    redView.center = center;
<pre name="code" class="objc">    CGRect frame = redView.frame;
    frame.size = CGSizeMake(150, 150);
    redView.frame = frame;


首先,按钮没有尺寸,即它的尺寸是(0, 0),这时,给它设置一个center,这个设置是没有问题的,但是要注意,这时的控件就是一个点,它的origin和center是一样的,设置了center之后,origin也就变成跟center一样的值了。

即这时,按钮的center.x = frame.origin.x = self.view.frame.size.width / 2;

 center.y =frame.origin.y = self.view.frame.size.height / 2;

然后,给按钮设置尺寸,需要注意的是,设置按钮的尺寸,需要先取出按钮的frame,修改之后再替换原来的frame。这里就出问题了,因为frame属性是包括了origin的,即取出了frame之后,改变了frame.size,但是frame.origin还是上面的跟center一样的值,这样,我们用新的frame替换原来的frame的效果就是,view的origin不变,只改变了大小,所以就出现了上面的情况。


所以,如果要通过设置center和frame.size来控制控件的位置,只有先设置frame.size再设置center,才能正确设置位置。

body标签不是容器而是页面基底:重置与优化全指南 body元素是HTML文档中实际承载内容的主体容器,其默认样式由浏览器用户代理样式表定义,核心包括8px外边距、默认字体继承链及视口高度继承关系。理解body与html的层级分工(html控制视口,body控制内容基底)是实现精准布局的前提;清除margin: 8px、设置min-height: 100%、统一font-family与color等操作,本质是建立可预测的CSS渲染基线。这些实践直接支撑响应式设计、暗色模式切换、模态框滚动控制等高频场景,也是‘个人博客网页设计html’‘好看的html跳转网页 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库01

此方案可满足千万级并发需求,同时支持时序数据、知识图谱和文档数据库的高效处理,通过云原生架构实现极致弹性。​:每月约$15-20万(100节点K8s集群+数据库集群+CDN流量)1. 宠物上架/下架流程。

weixin_49199313的博客 1476

iOS 小数点精度问题处理

实际开发中有时候经常会需要去处理小数点精度问题,如果是整数保留整数,如果有小数则保留不为0的的小数,最大2位小数 eg: 2.013 ---> 2.01 2.0 ---> 2 2.10 ---> 2.1 2.149 ---> 2.15 2.00000000009 ---> 2 (丢失精度的情况经常会遇到) 如果像以上情况,末尾为0则直接显示整数,如果不为0,...

dianchidu6913的博客 1065

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4732

shiro安全框架

intellij idea的配置使用教程IDEA的配置intellij idea快捷键 欢迎使用intellij idea IDEA的配置 一、全局JDK设置 二、主题和字体设置 主题设置在:“File | Settings | Appearance & Behavior | Appearance“” 字体设置在:"Editor"的"Font"中,分别设置编辑器字体、字号、行间距 三、3、设置控制台字体 控制台字体和编辑器字体设置一个逻辑,设置在:"Editor"下"Color Scheme"的

qq_44496147的博客 487

服务器AutoDL自己部署QWen3

说明:核心参数:30B 模型原精度权重文件约 60GB,单张 PRO 6000 拥有 48GB 显存,单卡塞不下原精度模型,2张 PRO 6000 = 96GB 总显存,这不仅能装下模型,还能留出约 30GB 显存给 KV Cache(上下文长度) 以及 Omni 多模态组件 处理图片/视频输入时的额外开销。1. 前提准备模型选择:直接下载到 AutoDL 服务器上=》原精度模型(BF16/FP16) 的 Qwen3-Omni-30B,选择的示例和环境如下。# 3. 正式执行模型下载。

xiaoxiao_00001的博客 414

android6 usb默认文件管理,不弹RSA配对提示框

本文修改针对 高通 Android6.0.1 出user版本时 https://www.cnblogs.com/Jokeyyu/p/7424262.html http://blog.youkuaiyun.com/sinc00/article/details/44957943 diff --git a/frameworks/base/packages/SystemUI/src/com/android...

木叶风的博客 692

ios 设置属性的center_UIView中frame属性的内部实现

作者 | 欧阳大哥2013来源 | https://juejin.im/user/593fb40eda2f6000673bdc61frame、center、bounds、transformUIView中用于表征视图在父视图中显示出来的位置和尺寸的属性是frame。同时系统还提供另外两个属性center和bounds。其中center属性值描述视图的中心点在父视图中的位置,而bounds...

weixin_42501704的博客 732

基于Quartus II软件的FPGA综合实验——多功能数字钟

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、设计要求二、设计原理三、设计过程1.数码管扫描模块2.计时模块3.闹钟模块4.闹钟响铃模块5.数码管显示模块6.整点报时功能7.模式选择模块(计时器主控电路)四、实验中遇到的困难及解决方案五、总结 前言 FPGA综合实验——多功能数字钟 基于Quartus II软件 一、设计要求 设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进.

qq_53022342的博客 2万+

ios 设置属性的center_(转)ios-坐标系统(详解UIView的frame、bounds跟center属性[图])...

1、概要翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下:frame:描述当前视图在其父视图中的位置和大小。bounds:描述当前视图在其自身坐标系统中的位置和大小。center:描述当前视图的中心点在其父视图中的位置。是不是有点迷糊?好吧,别急,让我们先说说ios的坐标系统。2、ios坐标系统ios以左上角为坐标原点(0,0),以原点向右侧为X轴正方向,原点下侧为Y轴正方向,如下...

weixin_39771301的博客 775

未来智能家居解决方案:AI应用架构师的前沿探索

当你加班到深夜回家时,门锁自动识别你的脚步声解锁,玄关灯渐亮成你最爱的暖光,空调早已调到25℃(你夏天的习惯温度),音箱播放着最近循环的爵士乐,茶几上的智能水壶烧好了温水——这不是科幻电影,而是未来智能家居的日常。如何让“冰冷的设备”变成“懂你的伙伴”。我们将深入探讨五大前沿技术(边缘AI、多模态融合、联邦学习、数字孪生、个性化推荐)的底层原理,用“家里的小管家”“邻居互相学习”等生活化比喻简化复杂概念,结合代码示例与架构图还原实现流程,并通过智能卧室、智能厨房等真实案例展示落地路径。

AI天才研究院 1410

扫地机器人设计与实现——基于嵌入式系统的智能家居解决方案

本文介绍了基于嵌入式技术的扫地机器人设计与实现。通过利用STM32单片机、传感器、驱动系统等硬件组件,并结合路径规划与控制算法、远程控制等软件技术,设计出了一款具有智能避障、路径规划、自动充电等功能的扫地机器人。系统的开发不仅提高了清洁效率,也为进一步研究和优化扫地机器人提供了实践基础。

2201_76125393的博客 1639

ios 设置属性的center_ios center.x设置

Control Center图形设置_电脑基础知识_IT/计算机_专业资料。AMD CrossFireX? 交替帧渲染 (AFR) 模式在此模式下,所有偶数帧在一个 GPU 上进行渲染,而所有奇数帧在......CCNA Discovery 在中小型企业或 ISP 工作 实验 5.3.5 使用 IOS CLI 配置基本路由器设置 路由器编号 路由器 1 路由器 2 路由器 名称 R1 R2 Fas...

weixin_29734285的博客 978

C#实现自己的远程桌面控制工具

1. 创建一个winform工程并添加RDP客户端COM组件。右击工具箱,然后点击选择项,选中下图所示组件并点击确定。为窗口加载时添加自动连接远程桌面代码。3.调试运行程序,验证远程桌面控制。拖放RDP控件到窗口中。2.编写远程桌面连接代码。

6089

Vue 完整版系统知识文档

《Vue全栈开发实战手册》摘要 本手册系统整合Vue2/Vue3全栈知识体系,涵盖基础语法、组件开发、状态管理、工程化等核心内容,适合从入门到精通的完整学习路径。主要特点: 基础核心 详解MVVM架构和响应式原理(Vue2的Object.defineProperty vs Vue3的Proxy) 完整模板语法规则与16种内置指令解析 组件系统核心:通信机制(8种方案)、插槽、动态组件、递归组件 进阶实战 状态管理:Vuex/Pinia完整解决方案 路由开发:动态路由、权限控制、懒加载 工程化:Webpack

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 401

11、硬件工程师笔试面试——IGBT(2025版本)

IGBT的应用展望与创新趋势表明,随着电子技术的不断发展,IGBT在各个领域都有广泛的应用,如高压电力系统、交通工具、电锅炉、太阳能和风能发电系统等。FS型IGBT(场终止型绝缘栅双极晶体管)在电力传输领域的应用中,通过其独特的设计和特性,有助于确保系统的稳定性和安全性。每种器件都有其独特的优势,能够满足电力传输系统中不同的技术要求。FS型IGBT通常具有正温度系数,这意味着随着温度的升高,导通压降的主要影响因素是载流子迁移率的降低以及集电极和发射极的接触电阻的增加,有助于在高温下维持稳定的性能。

XU157303764的博客 2672

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ios 设置属性的center_IOS开发-常用UI控件的基本使用(Transform形变属性、frame属性、center属性的使用)...

3.disabled(失效状态,不可用状态)如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击,默认情况是可以点击的。对应的枚举常量:UIControlStateDisabled三. 按钮设置背景图片与文字按钮可以设置不同状态下的背景图片:普通状态下和高亮状态下背景图片和文字的设置 五. 简单动画的添加此处的动画指的是,在属性值的改变是一种渐...

weixin_39998998的博客 425

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

iOS center属性

center属性是指当前view在其父view上的位置,center.x和center.y是以父view为参考系的。举个例子 UIView * view1 =[[UIView alloc]initWithFrame:CGRectMake(40, 100, 100, 100)]; view1.backgroundColor =[UIColor orangeColor]; [sel

BlingbringBling的博客 1749

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

iOS 中 frame、center 和bounds 的深入了解

iOS 中 frame、center 和bounds 的深入了解

wang_gwei的博客 900

ios 设置属性的center_ios-控件size和center设置顺序的问题

今天在设置控件的时候遇到了个问题,就是如果控件本身没有设置过frame,如果这个时候我们去给它去设置size和center来设置它的frame,如果我们设置的顺序不同那么所得到的效果是不一样的。经过以下的代码测试UIView * view1 = [[UIView alloc]init];view1.center = CGPointMake(20, 20);CGRect rect = view1.f...

weixin_39759918的博客 425

iOS 修改UIView位置和大小的方式

转自:http://segmentfault.com/q/1010000000119371

Gabriel的专栏 2万+

ios 设置属性的center_iOS--------坐标系统(UIView的frame、bounds跟center属性)

1、概要翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下:frame:描述当前视图在其父视图中的位置和大小。bounds:描述当前视图在其自身坐标系统中的位置和大小。center:描述当前视图的中心点在其父视图中的位置。是不是有点迷糊?好吧,别急,让我们先说说ios的坐标系统。2、ios坐标系统ios以左上角为坐标原点(0,0),以原点向右侧为X轴正方向,原点下侧为Y轴正方向。ios采用...

weixin_39860919的博客 283

iOS中调整UI控件位置和尺寸

1.frame(修改位置和尺寸):以父控件左上角为坐标原点,在其父控件中的位置和尺寸。 //frame属性中的坐标点不能直接修改 CGRect tempFrame = self.v.frame; // 1.取出原来的属性 tempFrame.origin.y+=10;//2.坐标点y加10 相当于向下移动10 self.v.frame=tempFrame;//3.赋值2

BearsG 4284

ios-控件size和center设置顺序的问题

今天在设置控件的时候遇到了个问题,就是如果控件本身没有设置过frame,如果这个时候我们去给它去设置size和center来设置它的frame,如果我们设置的顺序不同那么所得到的效果是不一样的。 经过以下的代码测试 UIView * view1 = [[UIView alloc]init]; view1.center = CGPointMake(20, 20); CGR

rv0p111 936

sizeThatFits and sizeToFit是UIView的两个方法, 官方文档上说:

sizeThatFits and sizeToFit是UIView的两个方法, 官方文档上说:  - (CGSize)sizeThatFits:(CGSize)size;      作用:return 'best' size to fit given size. does not actually resize view. Default is return existing view siz

Suk的专栏 8462
上一篇: 关于ios开发中图片的拉伸操作
下一篇: UITableView的上下滑动与自己添加的手势冲突
Make___
博客等级 码龄12年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值