`
shfzhzhr
  • 浏览: 70570 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于设置UIView的背景为图片的方法以及问题

    博客分类:
  • IOS
阅读更多

本文分析对比了各种更改UIView背景的方法。当然,背景是根据一个图片来的(非纯色)。

一.加一个uiimageview在uiview上面

   

UIImageView* imageView = [[UIImageView alloc] initWithFrame:view.bounds];    imageView.image = [[UIImage imageNamed:@"name.png"] stretchableImageWithLeftCapWidth:left topCapHeight:top];    
[view addSubview:imageView];

 

这种方式,如果原始图片大小不够(小于view的大小),可以拉伸,在view释放后也没有什么内存保留。

二.通过图片来生成UIColor设置view的backgroundColor

  1.imageNamed方式

  view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"name.png"]];

  2.contentOfFile方式

  NSString* path = [[NSBundle mainBundle] pathForResource:@"name" ofType:@"png"];    view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:path];

   这两种方式都会在生成color时占用大量的内存(原始图片的n倍,这个n可能会达到几千的程度)。而且如果图片大小不够,就会按照原始大小一个一个u画 过去,也就是不会自动拉伸。1和2的区别在于,view释放后,1中的color并不会跟着释放,而是一直存在于内存中(当然,再次根据这个图片生成 color时并不会再次申请内存了),而2中的color就会随着view的释放而释放。

三.quartzCore方式

UIImage *image = [UIImage imageNamed:@"name.png"];    view.layer.contents = (id) image.CGImage;    // 如果需要背景透明加上下面这句    view.layer.backgroundColor = [UIColor clearColor].CGColor;

  这种方式会自动拉伸图片,而且没有额外内存占用。

  综上,推荐第三种方式来根据图片设置背景色。

 

 
 
分享到:
评论

相关推荐

    UIView 保存为图片

    例如,如果你希望生成的图片为2倍分辨率(适用于Retina屏幕),即使实际屏幕是3倍分辨率,你可以设置scale为2。 `UIGraphicsBeginImageContextWithOptions`函数接受三个参数:图像的尺寸,是否保留透明度(false...

    IOS设置UIView的边框为圆角详解及实例

    本文主要介绍了IOS设置UIView的边框为圆角的相关知识点,通过使用QuartzCore库,实现UIView的边框设置为圆角,添加边框、背景图片等功能。 一、IOS设置UIView的边框为圆角的必要性 在iOS系统中,所有的View组件都...

    UIView相关示例代码

    - 触摸事件:你可以为按钮设置不同的标题、图像,以及不同状态下的标题和图像(如普通状态、高亮状态、选中状态等)。 - 触发动作:通过 addTarget:action:forControlEvents: 方法可以添加点击事件的处理代码,...

    UICollectionView分区设置背景图片或颜色

    本教程将深入讲解如何为UICollectionView的每个分区(section)设置背景图片或颜色,以此来美化和增强用户界面的视觉效果。 首先,我们需要理解UICollectionView的基本架构。UICollectionView由多个分区(sections...

    swift-WSRollView滚动背景支持本地图片与网络图片

    WSRollView的实现基于Swift类,可能包括继承UIView并添加必要的属性和方法来处理图片加载和滚动逻辑。 在WSRollView中,对于本地图片的支持,开发者可能使用`UIImage`类来加载和处理图片。`UIImage`提供了从文件...

    ios学习笔记中用到的美化按钮的背景图

    综上所述,`blueButton.png` 和 `whiteButton.png` 文件在iOS开发中用于美化按钮,通过设置不同状态的背景图片,配合其他UI属性调整,可以创建出符合iPhone风格的精美界面。对于初学者来说,理解并熟练掌握这些技巧...

    Swift.跑马灯效果UIView

    - 如果需要在属性更改时动态更新效果,例如改变`scrollSpeed`或`contentColor`,可以为这些属性设置KVO(Key-Value Observing)。 使用`MarqueeView`就像使用普通的`UIView`一样简单,可以通过设置属性来调整样式...

    ios应用源码之多种样式的无背景图片的按钮效果 2018127

    - 同时,通过`setBackgroundImage(_:for:)`方法设置背景图片为nil,确保按钮背景透明。 2. **文字样式定制**: - 使用`setTitle(_:for:)`方法设置按钮上的文字。 - `setTitleColor(_:for:)`可以改变文字颜色。 ...

    swift-使用Swfit扩展为UIView添加随UIScrollView滚动产生视差效果

    10. **实际应用场景**:视差效果常用于应用启动页、头部视图、背景图片等,能够增强用户体验,使界面更具吸引力。 综上所述,这个主题不仅涵盖了Swift编程语言的扩展特性,还涉及到iOS开发中的动画和交互设计。通过...

    IOS入门-UIView-简单地七彩霓虹灯Demo

    在selector方法中,每次调用时都会选择颜色数组中的下一个颜色,然后设置到UIView的backgroundColor上。为了实现闪烁效果,还可以随机调整颜色的alpha值。 4. **启动动画**:将CADisplayLink添加到RunLoop中,使其...

    UIView Class Reference

    4. **backgroundColor**: 设置视图的背景颜色。这可以通过`UIColor`对象来指定。 5. **addSubview(_:)**: 将另一个视图添加为当前视图的子视图。 6. **removeFromSuperview()**: 从父视图中移除当前视图。 7. **...

    ios 自定义cell背景的更改

    对于更复杂的背景效果,例如渐变色、图片或者自定义视图,可以创建自定义UIView子类并添加到背景视图中。例如,创建一个GradientBackgroundView来实现渐变背景: ```swift class GradientBackgroundView: UIView { ...

    Swift 2.1 为 UIView 添加点击事件和点击效果

    下面是一个名为`UIViewEffect`的类,它重写了`touchesBegan`、`touchesCancelled`和`touchesEnded`方法,以在用户按下和释放视图时改变背景颜色,模拟点击效果: ```swift class UIViewEffect : UIView { override...

    IOS应用源码之多种样式的无背景图片的按钮效果 .rar

    在iOS应用开发中,创建具有独特样式且无背景图片的按钮是常见的需求,这不仅可以提升用户界面的美观性,还能增强交互体验。本资源提供的"多种样式的无背景图片的按钮效果"源码,旨在帮助开发者掌握如何在iOS中自定义...

    ios 用摄像头捕捉的图像为背景

    将图像设置为应用背景,通常涉及修改UI元素的背景图片。如果是整个视图背景,可以直接设置`UIView`的`backgroundColor`为`UIColor`的`patternImage`属性,传入`UIImage`实例。如果需要自定义布局,可以添加一个...

    37-大转盘设置图片.zip

    2. **自定义视图**:创建大转盘通常需要自定义UIView子类,这将涉及重写drawRect:方法来绘制转盘的各个部分,如指针、背景和奖品区域。 3. **CADisplayLink**:为了实现平滑的旋转动画,开发者可能会使用...

    改变iOS应用中UITableView的背景颜色与背景图片的方法

    本篇将详细介绍如何改变UITableView的背景颜色以及设置背景图片。 首先,我们来看如何改变UITableView的背景颜色。最直接的方法就是设置`backgroundColor`属性。例如,如果想要将UITableView的背景色改为红色,可以...

    IOS开发的关于图片和frame的分类

    同时使用`setBackButtonBackgroundImage:forState:barMetrics:`和`setBackgroundImage:forState:barMetrics:`方法来设置不同状态下的背景图片。 3. 切割式拉伸图片: 在UI设计中,有些图片需要在不同尺寸下保持特定...

    多种样式的无背景图片的按钮效果_IOS应用源码.rar

    下面将详细探讨这个主题,包括iOS中的按钮控件、自定义按钮样式、以及无背景图片按钮的设计技巧。 首先,我们来了解iOS中的UIButton类。UIButton是苹果提供的UI控件之一,用于实现用户与应用之间的交互。它不仅支持...

Global site tag (gtag.js) - Google Analytics