首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >UISwitch的底部在设备上被切断,但在模拟器上显示正常。

UISwitch的底部在设备上被切断,但在模拟器上显示正常。
EN

Stack Overflow用户
提问于 2010-06-24 11:27:35
回答 3查看 1.2K关注 0票数 1

我的设备上的UISwitch:切换底部像素与http://gorgando.com/uiswitch.jpg的图像

模拟器上的UISwitch:Good UISwitch UISwitch

正如你所看到的,底部的像素在设备上被切断,而在模拟器上没有。我已经试过了我所能想到的一切,但是没有什么能解决问题。

我尝试过的一些事情:

  • 改变UISwitch框架的高度
  • 改变UICell的高度
  • 改变UICell的内容视图的高度
  • 将UISwitch添加到UICell而不是UICell的contentView中

以下是相关代码:

这是在viewDidLoad of uiTableViewController中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UISwitch *sw =  [[UISwitch alloc] init];
self.contactedSwitch = sw;
[sw release];
self.contactedSwitch = [UISwitch switchWithLeftText:@"YES" andRight:@"NO"];
self.contactedSwitch.center = CGPointMake(230, 22);
self.contactedSwitch.on = [self.contact.contacted boolValue];

这就是switchWithLeftText:andRight方法的来源:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import "UISwitch-Extended.h"

#define TAG_OFFSET  900

@implementation UISwitch (tagged)
- (void) spelunkAndTag: (UIView *) aView withCount:(int *) count
{
    for (UIView *subview in [aView subviews])
    {
        if ([subview isKindOfClass:[UILabel class]])
        {
            *count += 1;
            [subview setTag:(TAG_OFFSET + *count)];
        }
        else 
            [self spelunkAndTag:subview withCount:count];
    }
}

- (UILabel *) label1 
{ 
    return (UILabel *) [self viewWithTag:TAG_OFFSET + 1]; 
}

- (UILabel *) label2 
{ 
    return (UILabel *) [self viewWithTag:TAG_OFFSET + 2]; 
}

+ (UISwitch *) switchWithLeftText: (NSString *) tag1 andRight: (NSString *) tag2
{
    UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectMake(0, 0, 94, 27)];

    int labelCount = 0;
    [switchView spelunkAndTag:switchView withCount:&labelCount];

    if (labelCount == 2)
    {
        [switchView.label1 setText:tag1];
        [switchView.label2 setText:tag2];
    }

    return [switchView autorelease];
}

@end

这就是我将UISwitch添加到我的表视图单元格中的地方:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[contactedCell contentView] addSubview:self.contactedSwitch];

非常感谢!

Update --我认为表格视图单元可能是问题所在,所以我将这些UISwitches添加到常规的UIView中,以查看它们的外观。我有一个完全相同的问题,他们看起来很好,在模拟器和底部被切在设备中。太奇怪了!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-28 07:43:51

从来不知道到底出了什么问题,但我最终在IB中创建了UISwitches,并让它以这种方式工作得很好。非常奇怪的是,它在IB中工作,而不是以编程的方式工作,而我基本上是在做同样的事情。

票数 1
EN

Stack Overflow用户

发布于 2010-07-06 14:20:40

当我编程创建一个UISwitch并改变其帧的原点时,我也遇到了同样的问题--它原来是一个半像素的问题。

注意到半像素错误的一个关键是:在模拟器和设备上,不需要的工件是否以不同的方式出现?

将UISwitch与Interface放在一起的解决方案解决了这个问题--如果您正在设置UISwitch的帧的原点x/y,还可以确保设置()您的新坐标。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UISwitch *mySwitch = [[UISwitch alloc] initWithFrame(CGRectZero)];
CGRect switchFrame = mySwitch.frame;  
// move frame up without pixel fractions
switchFrame.origin.y = floor((cell.contentView.frame.size.height - switchFrame.size.height) / 2); 
mySwitch.frame = switchFrame;
[cell.contentView addSubview:mySwitch];

在最初的海报案例中,uiswitch的高度是一个奇数(27个像素),因此将中心设置为22,将高度除以13.5。UISwitch的原点y坐标为22-13.5 = 8.5像素.不要通过设置UISwitch的中心移动它,或者设置坐标,或者在调用CGPointMake(230,22.5)中使用分数。

另一种跟踪这类错误的方法是通过Interface查找".5“坐标。我发现,有时过度调整UI元素在Interface中的位置会引入这个bug。

票数 3
EN

Stack Overflow用户

发布于 2011-06-01 23:05:07

这是由乌斯威奇的顶部造成的。您可以使用UISwich.origin.y = ceil((height - UISwich.size.height)/2)来修复它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3113260

复制
相关文章
RedisTemplate:我不背锅,是你用错了
我也有点懵,第一反应就是 RedisTemplate 和 StringRedisTemplate 会不会用的两个不同的 Connection,导致相同的 Key 一个能查到,一个不能查到。
猿天地
2020/03/11
1.3K0
RedisTemplate:我不背锅,是你用错了
RedisTemplate:我不背锅,是你用错了
今天分享一个 RedisTemplate 的问题,感兴趣的可以继续看下去了,不感兴趣的继续撩妹去吧!
程序猿Damon
2020/11/09
4320
RedisTemplate:我不背锅,是你用错了
nginx gzip 压缩
Web 开发中需要的静态文件有:CSS、JS、字体、图片,可以通过 web 框架进行访问,但是效率不是最优的。 Nginx 对于处理静态文件的效率要远高于 Web 框架,因为可以使用 gzip 压缩协议,减小静态文件的体积加快静态文件的加载速度、开启缓存和超时时间减少请求静态文件次数。下面就介绍如何通过 Nginx 管理静态文件的访问,优化网站的访问速度。
数媒派
2022/12/01
1.2K0
Nginx Gzip 压缩
不知不觉 nginx主题的文章写了60+篇,有最早的也有最近的,有些是记录安装配置,有些是记录问题解决方法,内容质量有深也有浅参差不齐,随着技术迭代有些文章已经过时了(例如Docker代替了VM)不再符合当前的技术需求,而有些文章虽然久远但是仍有有意义(例如Nginx HA),所以有了梳理这些文章的想法,目标有两个吧,一是回顾下过去的文章巩固下知识点,二是去其糟粕留下精华将有价值的文章搬迁(搬砖)到微信公众号。
用户1560186
2019/11/19
1.5K0
nginx开启gzip压缩
nginx对于静态文件的处理模块 该模块可以读取预先压缩的gz文件,这样可以减少每次请求进行gzip压缩的CPU资源消耗。该模块启用后,nginx首先检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容。为了要兼容不支持gzip的浏览器,启用gzip_static模块就必须同时保留原始静态文件和gz文件。这样的话,在有大量静态文件的情况下,将会大大增加磁盘空间。我们可以利用nginx的反向代理功能实现只保留gz文件。
无道
2021/06/29
2.2K0
Nginx——开启 GZIP 压缩
配置在 nginx.conf 文件中,对于 gzip 的编写,写在 http 模块下面。
凡人飞
2020/09/21
1.7K0
[Linux] Nginx响应压缩gzip
压缩和解压缩 1.本节介绍如何配置响应的压缩或解压缩以及发送压缩文件。 gzip on; 2.NGINX仅使用MIME类型text / html压缩响应 gzip_types text/plain application/xml;//指定压缩媒体类型 3.指定响应压缩的最小长度 gzip_min_length 1000; 4.gzip_proxied指令具有参数,指示NGINX检查响应中的Cache-Control头字段,并在值为no-cache,no-store或private时压缩响应 gzi
唯一Chat
2019/09/10
1.7K0
[Linux] Nginx响应压缩gzip
nginx开启Gzip压缩
启用Gzip压缩功能, 可以使网站的css、js 、xml、html 等静态资源在传输时进行压缩,经过Gzip压缩后资源可以变为原来的30%甚至更小,尽管这样会消耗一定的cpu资源,但是会节约大量的出口带宽来提高访问速度
超级小的大杯柠檬水
2023/05/06
2K0
nginx开启Gzip压缩
Nginx开启Gzip压缩
GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量
剧终
2020/09/11
11.4K0
Nginx与Gzip请求
前些天,移动端的同事跑来问:某些API需要传输大数据,Nginx服务器能否支持Gzip请求?一方面可以节省移动端流量;另一方面还可以加快传输速度,提升用户体验。对于Apache来说,利用SetInputFilter,可以很轻松的实现这个功能,那么Nginx如何做呢?
LA0WAN9
2021/12/14
8310
解决宝塔nginx防火墙启动后nginx不工作
一套流程下来,发现安装nginx防火墙之后nginx直接关停,无法启动,重载配置也无果。试着卸载防火墙并重启nginx成功。论坛上也没有具体解决方案,官方人员只是说规则配置问题,要去加他们技术。不得不说,还挺牛.
jcjyxjs
2021/09/09
3.3K0
解决宝塔nginx防火墙启动后nginx不工作
解决宝塔nginx防火墙启动后nginx不工作
一套流程下来,发现安装nginx防火墙之后nginx直接关停,无法启动,重载配置也无果。试着卸载防火墙并重启nginx成功。论坛上也没有具体解决方案,官方人员只是说规则配置问题,要去加他们技术。不得不说,还挺牛.
jcjyxjs
2021/09/04
2.9K0
Nginx之gzip模块解读
gzip是GNUzip的缩写,最早用于UNIX系统的文件压缩。HTTP协议上的gzip编码是一种用来改进web应用程序性能的技术,web服务器和客户端(浏览器)必须共同支持gzip。目前主流的浏览器,Chrome,firefox,IE等都支持该协议。常见的服务器如Apache,Nginx,IIS同样支持gzip。
一个风轻云淡
2023/09/23
7420
如何在Nginx配置Gzip
网站加载的速度取决于浏览器必须下载的所有文件的大小。减少要传输的文件的大小可以使网站不仅加载更快,而且对于那些宽带是按量计费的人来说也更友好。
小铁匠米兰的v
2018/07/16
2.2K0
nginx gzip配置参数解读
本文主要解析一下nginx ngx_http_gzip_module以及ngx_http_gzip_static_module中的gzip相关配置参数。
code4it
2018/09/17
1.3K0
Nginx配置gzip加载优化
提升首页加载速度,浏览器对于同于网站下,允许同时加载的资源个数是有限的,chrome为6个还是7个,如果打包体积过大就会影响加载速度影响后面资源的加载。 因为我们环境上都是用的nginx因此我本地也是用的nginx做的测试,其他优化方法暂没有看。
用户7741497
2022/03/05
4610
【Nginx24】Nginx学习:压缩模块Gzip
又是一个非常常见的模块,Gzip 现在也是事实上的 Web 应用压缩标准了。随便打开一个网站,在请求的响应头中都会看到 Content-Encoding: gzip 这样的内容,这就表明当前这个请求的页面或资源使用了 Gzip 压缩。
硬核项目经理
2023/09/18
1.7K0
【Nginx24】Nginx学习:压缩模块Gzip
Nginx手册:Gzip压缩模块详解
Nginx中的Gzip模块,支持在线实时压缩输出数据流。有利于减少访问网站过程中传输的数据量,从而减少带宽资源的占用率。
魏杰
2022/12/23
1.3K0
Nginx开启资源压缩模块gzip
如果一个静态资源的Size越小,那么自然传输速度会更快,同时也会更节省带宽,因此我们在部署项目时,也可以通过Nginx对于静态资源实现压缩传输,一方面可以节省带宽资源,第二方面也可以加快响应速度并提升系统整体吞吐。
Petrochor
2023/04/01
1.3K0
Nginx开启资源压缩模块gzip
Nginx 配置相关--Gzip压缩、CORS
Gzip压缩 效果还是很明显的 # 直接配置到 nginx server下面即可 # 效果还是挺明显的,之前大概2m的js文件,现在只要600kb左右 # use gzip gzip on; gzip_min_length 1k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript application/javascript text
lpe234
2020/07/27
4680

相似问题

根据5个标准计算1列中的唯一值?

119

根据另一列中的条件计算唯一值

12

如何计算列中的唯一值数以及另一列的标准

19

根据日期标准之间的另一列中的条件计算唯一文本值

11

根据多列中的标准计算不同的值

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文