IOS图像拉伸解决方案

iOS图片拉伸技巧 纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。 比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: // 阅读详情
UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种:

第一种方法很简单而且使用性更广。做法就是直接拉伸想要setBackgroundImage的image,代码如下:

UIImage *image = [UIImage imageNamed:@"image.png"]; 
image = [image stretchableImageWithLeftCapWidth:floorf(image.size.width/2) topCapHeight:floorf(image.size.height/2)];

设置了左端帽之后,rightCapWidth = image.size.width - (image.leftCapWidth + 1); 也就是说图片中间的一像素用来拉伸。垂直方向同上。设置之后无论把image放到什么控件中都可以自动拉伸了。

 UIImage *buttonImage = [UIImage imageNamed:@"contact.png"];
 buttonImage = [buttonImage stretchableImageWithLeftCapWidth:floorf(buttonImage.size.width/2) topCapHeight:floorf(buttonImage.size.height/2)];

 UIImage *buttonImageselected = [UIImage imageNamed:@"contactselected.png"];
 buttonImage = [buttonImage stretchableImageWithLeftCapWidth:floorf(buttonImage.size.width/2) topCapHeight:floorf(buttonImage.size.height/2)];
 
 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
 button.frame = CGRectMake(0, 0, 240, 44);
 [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
 [button setBackgroundImage:buttonImageselected forState:UIControlStateHighlighted];
 button.center = CGPointMake(160, 240);
 [button setTitle:@"button" forState:UIControlStateNormal];
 [button setTitle:@"buttonClick" forState:UIControlStateHighlighted];
 [self.view addSubview:button];

第二种方法是在UIButton中加入一个UIImageView,拉伸imageView,然后将button的背景设为clearColor等等。把imageView放入button中,并且sendToBack,得到效果。代码如下:
 //刚才imageView拉伸的代码 

UIImageView *strechTest = [[UIImageyiView alloc] initWithImage:[UIImage imageNamed:@"contact.png"]];
[strechTest setContentStretch:CGRectMake(0.5f, 0.5f, 0.f, 0.f)];
CGRect frame = strechTest.frame;
frame.size.width += 100;
strechTest.frame = frame;

//把imageView放入button中,并设置为back
 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
 button1.frame = frame;
 button1.center = CGPointMake(160, 140);
 [button1 addSubview:strechTest];
 [button1 sendSubviewToBack:strechTest];
 [button1 setBackgroundColor:[UIColor clearColor]];
 [button1 setTitle:@"button" forState:UIControlStateNormal];
 [button1 setTitle:@"buttonClick" forState:UIControlStateHighlighted];
 [self.view addSubview:button];

效果:


iOS性能优化之混合模式和图片拉伸 这篇文章不会深究界面渲染原理和底层绘制机制,只讨论 iOS 中 UIImageView 的一些使用上的性能优化。Xcode 为我们提供了很多牛逼的性能检测工具,今天我们会使用模拟器自带的 UI 性能检测功能,来优化我们的 UIImageView 性能。 首先,我们得知道什么情况下会引发 UI 性能问题,才能针对性的去处理这些问题。 当我们给 UIImageView 设置带有 alpha 通 阅读详情

相关推荐

深入探究iOS中UIImage的图像截取与拉伸技术

UIImage是iOS开发中用于表示图像的核心类,其提供了丰富的方法来处理静态图像数据。UIImage不仅能够加载、保存图像,还能执行多种图像处理操作,如图像缩放、旋转、裁剪、图像格式转换等,是构建美观用户界面不可或缺的一部分。是一个iOS开发中,用于生成可拉伸图像的UIImage类别方法。此方法特别适用于需要在图像的某个部分(例如按钮的边缘)进行拉伸,而其他部分保持不变的场景。可拉伸图像在用户界面设计中非常实用,因为它能够保证图像在大小改变时不会失真。

weixin_30820933的博客 756

iOS中对图片拉伸的四种方式

1. UIImageView整体拉伸方式一是通过设置容器UIImageView中图片的显示模式:UIImageView-contentMode,使容器内的图片按照需要的拉伸方式在容器中显示。typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, // 默认 拉伸(会变形)

謝公子造轮子 1万+

[ios]实现图片部分拉伸(与android9图类似)

ios实现图片部分拉伸(与android9图类似),操作非常简单...非常好

图片拉伸的几种方式

第一种,使用代码 + (UIImage *)resizableWithName:(NSString *)imageName{     UIImage *image = [UIImage imageNamed:imageName];     /**      *  1. 可以在图片资源里,选择show slicing进行设置拉伸图片   

落寒的专栏 1900

iOS图片拉伸的4种方法

主要为大家详细介绍了iOS图片拉伸的4种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

深入解析XTEA加密算法的核心机制与优化策略

本文深入解析XTEA加密算法的核心机制与优化策略,详细介绍了XTEA在嵌入式系统和资源受限环境中的优势,包括其高效的加解密速度和低资源消耗。文章还探讨了XTEA的轮函数设计、关键参数优化策略以及实战应用中的性能对比,为开发者提供了安全增强方案和优化技巧。

k8l9m0n的博客 242

iOS图像拉伸解决方案

UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种: 第一种方法很简单而且使用性更广。做法就是直接拉伸想要setBackgroundImage的image,代码如下: UIImage*image=[UIImageimageNamed:@"image.png"]; image=[imagestretchableImageWithLeftCapWid...

weixin_30621959的博客 220

如何使用3D高斯分布进行环境建模

使用3D高斯分布来进行建模,关键在于通过引入不确定性描述来提高建图的鲁棒性和精度。与传统点云表示相比,3D高斯分布提供了一种更为灵活和有效的方式来处理空间数据,能够通过协方差矩阵表示点的空间不确定性,帮助优化SLAM过程中的定位和地图更新。

JaydenQ的博客 2355

【转】IOS图像拉伸解决方案

原文网址:http://www.cnblogs.com/ios8/p/ios-pic-lashen.html UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种: 第一种方法很简单而且使用性更广。做法就是直接拉伸想要setBackgroundImage的image,代码如下: UIImage*image=[UIImageimageNamed:@"image....

weixin_30786657的博客 126

ArduSub深度调参指南:如何让水下机器人像鱼一样稳定游动

本文深入探讨了ArduSub水下机器人的深度调参策略,旨在解决ROV在水下晃动、响应迟钝等问题。文章系统解析了级联PID控制逻辑,并针对静水与水流环境,提供了具体的深度保持与姿态控制调参方法、实战日志分析技巧以及异常振荡处理方案,帮助用户实现水下机器人稳定、流畅的游动性能。

CAT789的专栏 372

Python3 ACM模式输入输出全攻略:从牛客网到华为机试的实战技巧

本文详细解析了Python3在ACM模式下的输入输出处理技巧,针对牛客网、华为机试等在线评测系统。文章从input()函数本质出发,总结了六种高频输入模式的处理模板,并提供了链表、二叉树等数据结构的I/O实战方案,最后给出性能优化与常见避坑指南,帮助开发者高效应对算法笔试。

zero1的博客 998

李洪强iOS开发之图片拉伸技巧

纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。 比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50:...

aaa1231722的博客 73

基于陀螺仪航向反馈的轮式机器人PID直线控制

航向角控制是移动机器人实现稳定直线运动的基础技术,其本质是通过实时感知机体朝向偏差并动态调节驱动输出,以抵消机械不对称、轮径误差等固有扰动。该方法依托陀螺仪测量角速度并积分解算航向角,结合离散化PID算法生成补偿性PWM指令,在嵌入式平台(如STM32)上构建低延迟闭环。相比依赖编码器的速度闭环,它规避了轮径标定与安装偏心等误差源,显著提升低成本平台的工程鲁棒性与部署效率。典型应用场景包括教育机器人直线循迹、AGV基础导航模块开发及IMU-PID融合控制原型验证。

web39explorer的博客 1110

鸿蒙中如何实现图片拉伸效果

一文了解鸿蒙中图片拉伸的使用。鸿蒙中图片可以实现拉伸吗,可以像安卓的.9图一样任意拉伸吗,可以像iOS一样以任意位置拉伸吗,鸿蒙中图片怎么拉伸,目前鸿蒙中图片拉伸存在哪里问题,通过本文阅读让我们来一起了解。

高级程序猿一枚,多年前后端经验。记录分享遇到问题,了解最新知识。 2886

大厂面经:大疆嵌入式面试题及参考答案(4万字长文:持续更新)

目录 Linux 系统调用的过程,中间发生了什么? 表格总结 Linux 中断流程,谈谈你对中断上下文的理解 中断流程 中断上下文理解 Linuxschedule()函数的原理和调用的时机 schedule()函数原理 调用时机 页表实现机制,分页的缺点? 页表机制 分页的缺点 介绍操作系统的多级反馈调度策略,时间片轮转,在项目中如何指定优先级来调度进程完成快速响应(nice命令) 多级反馈队列调度 时间片轮转 使用nice命令 聊内存分配,进程内存分配,段页式存

大模型大数据攻城狮的专栏 4170

提升YOLOv8性能:用Swin Transformer替换Backbone的详细实现与分析【YOLOv8】

YOLOv8作为目标检测领域的最新版本,在速度和精度之间取得了良好的平衡。然而,随着计算机视觉任务的复杂性不断增加,YOLOv8的标准主干网络(Backbone)在处理高分辨率图像或多尺度目标时,可能存在一定的局限性。为了进一步提升YOLOv8的性能,我们可以引入Swin Transformer替换其主干网络,以增强模型的全局感知能力和多尺度特征提取能力。本文将详细介绍如何在YOLOv8中用Swin Transformer替换原有的Backbone,提供代码示例,并深入探讨其中的原理和效果。

博客 1717

IOS图像拉伸技巧

纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。 比如下面张图片,本来是设计来做按钮背景的:  button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50

liwuking的专栏 609

iqoo11如何获取root权限?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 5827

【iOS学习笔记】图片拉伸技巧

纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。 比如下面张图片,本来是设计来做按钮背景的:  button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50

阿-凡提de小毛驴 478

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: NSString,NSMutableString使用retain, copy理解
下一篇: IOS UISearchDisplayController 点击搜索出现黑条问题解决方案
LIN1986LIN
博客等级 码龄19年 17粉丝 93原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值