6个iOS图片文本设计小技巧

移动开发
设计师们似乎拥有着我们这些开发者所没有的“魔力”,他们知道如何让一个应用的界面看起来非常得舒适,以至于有时让我们有了迫不及待将其复现的冲动。然而,几天过去了,我们仍然还停留在设计稿的第一个界面,写下大段大段的代码,可是界面却不是我们想要的那个样子,这无疑是非常让人恼火的一件事情。好消息是设计师们的“魔力”并不是我们想象中的那么神奇,有一些关于设计的小技巧。只要掌握了它们,我们就能够以最小的代价让用户界面变得好看起来。

设计师们似乎拥有着我们这些开发者所没有的“魔力”,他们知道如何让一个应用的界面看起来非常得舒适,以至于有时让我们有了迫不及待将其复现的冲动。

然而,几天过去了,我们仍然还停留在设计稿的第一个界面,写下大段大段的代码,可是界面却不是我们想要的那个样子,这无疑是非常让人恼火的一件事情。

好消息是设计师们的“魔力”并不是我们想象中的那么神奇,有一些关于设计的小技巧。只要掌握了它们,我们就能够以最小的代价让用户界面变得好看起来。

011.png

今天,我将会给大家展示其中的一些小技巧,我更乐意将它们称之为“图片标记技巧”,大意就是如何在一幅图片上放文字会更加好看。我们在我们的[iOS模板]中使用了这些技巧,这也是我们为何能够搭建出色用户界面的诀窍之一。

这些设计理念也可以用在表视图单元格(Table View Cell)和集合视图(Collection View)当中。

我们并不能直接将文字扔到图片上面,然后指望它Duang地一下出现那个Feel。不过,跟随以下6条小技巧就能够实现我们的目的了:

1:加文字

嗯,我不会忘记我说过,直接将文字扔到图片上面并不能让它变得号看起来。不过有些时候我们或许会走狗屎运,就像下图这个例子一样。这种设计看起来很赞,是因为标题比其他文字元素要显得更大一些。

012.png

并且,这种效果一般只会发生在文字在图片的深色部分上面。如果不是这种情况,那么就会像下面这个例子一样。现在我们换了一个有其他封面的文章,啊偶,GG。

013.png

好吧,怎么办?

2:加图片遮罩

我们可以直接在图片上加一个遮罩,技巧就是通过这个遮罩让图片变得更暗、更透明,或者直接刷上颜色,就像Yahoo新闻做的那样。

014.png

好的,在这个例子中,由于底色是蓝色,文字颜色是白色,所以看起来效果很赞。

下面这个例子是我们目前正在制作的项目截图,接下来就是我们实现这个效果的代码:

015.png

 
  1. func addFullOverlay(){ 
  2.    
  3.         let overlayView = UIView(frame: CGRectZero) 
  4.    
  5.         overlayView.translatesAutoresizingMaskIntoConstraints = false 
  6.    
  7.         overlayView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5
  8.    
  9.         self.view.insertSubview(overlayView, aboveSubview: coverImageView) 
  10.    
  11.    
  12.         let topConstraint = NSLayoutConstraint(item: overlayView, attribute: .Top, relatedBy: .Equal, toItem: self.view, attribute: .Top, multiplier: 1, constant: 0
  13.    
  14.         let leftConstraint = NSLayoutConstraint(item: overlayView, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1, constant: 0
  15.    
  16.         let rightConstraint = NSLayoutConstraint(item: overlayView, attribute: .Right, relatedBy: .Equal, toItem: self.view, attribute: .Right, multiplier: 1, constant: 0
  17.    
  18.         let bottomConstraint = NSLayoutConstraint(item: overlayView, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1, constant: 0
  19.    
  20.         view.addConstraints([topConstraint, leftConstraint, rightConstraint, bottomConstraint]) 
  21.    
  22.     } 

不过这个效果不是很理想,因为图片现在的颜色很阴暗,文字就特别突兀,不过这个效果或许就是您追求的效果。通过给遮罩添加一下着色,我们就可以像instagram那样,给图片加个“滤镜”的效果,就像下图所展示的那样。

#p#

我们只需给这个半透明的遮罩加上颜色就可以了:

  1. overlayView.backgroundColor = UIColor(red: 0.5, green: 0.2, blue: 0, alpha: 0.5

016.png

3:加文字背景

某些人并不喜欢遮罩这个做法,因为他们可能想让图片保持“原汁原味”。这样的话,我们就要使用这个技巧了,就如“Funny or Die”所做的那样。

015.png

那我们的项目来距离,我们可以给文字加上背景。通过文本的`NSAttributed`属性,我们可以轻易地完成这项操作。

016.png

实现这项效果的代码如下:

 
  1. func addBackgroundColorToText() { 
  2.    
  3.     let style = NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy() as! NSMutableParagraphStyle 
  4.    
  5.     style.firstLineHeadIndent = 10.0 
  6.     style.headIndent = 10     
  7.     style.tailIndent = 0 
  8.    
  9.     let attributes = [NSParagraphStyleAttributeName : style] 
  10.     let attributedTitleText = NSAttributedString(string: "Supplier woes suggest Apple Watch sales aren't great", attributes: attributes) 
  11.    
  12.     titleLabel.attributedText = attributedTitleText 
  13.    
  14.     let textbackgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.6
  15.     titleLabel.backgroundColor = textbackgroundColor 
  16.     authorLabel.backgroundColor = textbackgroundColor 
  17.     dateLabel.backgroundColor = textbackgroundColor 

4:加有颜色的背景

呃,和上面那个效果类似,如果您不喜欢黑色的话,那么可以更换文字背景的颜色,这样就有了“有颜色的文字背景”。至于如何实现这个效果,就留给您去尝试了O(∩_∩)O~。关键在于找到图片的主色,然后将其设置为背景颜色。

017.png

5:加毛玻璃

这是我最喜欢的效果,没有之一。通过iOS 8提供的`UIVisualEffectView`类,我们可以轻松地实现这个效果。我们在Newsstand例程中使用了这项效果。通过将文本下方的图片加上毛玻璃效果,可以让文字变得更加易读。

018.png

以下是实现这个效果的代码:

 
  1. func addBlurView(){ 
  2.    
  3.     let effect = UIBlurEffect(style: .Light) 
  4.    
  5.     let overlayView = UIVisualEffectView(effect: effect) 
  6.    
  7.     overlayView.translatesAutoresizingMaskIntoConstraints = false 
  8.    
  9.     self.view.insertSubview(overlayView, aboveSubview: coverImageView) 
  10.    
  11.     let topConstraint = NSLayoutConstraint(item: overlayView, attribute: .Top, relatedBy: .Equal, toItem: self.titleLabel, attribute: .Top, multiplier: 1, constant: -30
  12.    
  13.     let leftConstraint = NSLayoutConstraint(item: overlayView, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1, constant: 0
  14.    
  15.     let rightConstraint = NSLayoutConstraint(item: overlayView, attribute: .Right, relatedBy: .Equal, toItem: self.view, attribute: .Right, multiplier: 1, constant: 0
  16.    
  17.     let bottomConstraint = NSLayoutConstraint(item: overlayView, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1, constant: 0
  18.    
  19.     view.addConstraints([topConstraint, leftConstraint, rightConstraint, bottomConstraint]) 

6:加暗色渐变

这是我第二喜欢的效果,有些时候甚至比毛玻璃还要好看一些。

这个效果是通过在文本下方加上一个“暗色渐变”(gradient fade)的图层,颜色从半透明的黑色渐变到不透明的黑色,看起来效果很赞。

019.png

这个效果用在了很多应用上面,比如说Flipboard以及许多博客应用上发。我们也可以发现在Hotel Tonight应用中也应用了这个效果。

020.png

要实现这个效果,您可以使用以下代码:

  1. func addGradientOverlay(){ 
  2.    
  3.     self.view.insertSubview(gradientView, aboveSubview: coverImageView) 
  4.    
  5.     gradientLayer.frame = gradientView.bounds 
  6.    
  7.     let opaqueBlackColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1.0).CGColor 
  8.     let transparentBlackColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.0).CGColor 
  9.     gradientLayer.colors = [transparentBlackColor, opaqueBlackColor] 
  10.    
  11.     gradientView.layer.insertSublayer(gradientLayer, atIndex: 0
  12.    
  13.     gradientView.translatesAutoresizingMaskIntoConstraints = false 
  14.    
  15.     self.view.insertSubview(gradientView, aboveSubview: coverImageView) 
  16.    
  17.     let topConstraint = NSLayoutConstraint(item: gradientView, attribute: .Top, relatedBy: .Equal, toItem: self.titleLabel, attribute: .Top, multiplier: 1, constant: -60
  18.    
  19.     let leftConstraint = NSLayoutConstraint(item: gradientView, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1, constant: 0
  20.    
  21.     let rightConstraint = NSLayoutConstraint(item: gradientView, attribute: .Right, relatedBy: .Equal, toItem: self.view, attribute: .Right, multiplier: 1, constant: 0
  22.    
  23.     let bottomConstraint = NSLayoutConstraint(item: gradientView, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1, constant: 0
  24.    
  25.     view.addConstraints([topConstraint, leftConstraint, rightConstraint, bottomConstraint]) 
下载示例项目

是不是很喜欢这些效果呢?现在您已经知道如何实现,那么就可以在您的应用中使用它们了。点击此处来下载示例项目,这样可以看到所有已实现的效果。

责任编辑:倪明 来源: 简书
相关推荐

2021-07-23 11:00:18

UI界面设计效果

2021-07-03 08:07:16

UIApp移动端

2021-05-29 09:52:15

UI设计技巧标签

2021-02-03 10:46:31

SQL数据库技巧

2017-10-30 17:25:11

javascript

2020-06-03 09:08:21

JavaScript开发代码

2015-03-23 09:44:55

iOS开发技巧

2017-08-20 13:32:09

2021-04-20 22:23:33

iOS苹果系统

2013-04-11 16:08:50

iOS开发技巧积累

2013-12-18 10:34:42

OpenMP线程

2011-11-08 15:39:39

网页设计

2013-04-23 10:57:27

iOS开发App icon设计

2013-08-27 14:44:05

App icon设计ASO应用商店优化app营销推广

2022-05-17 15:34:08

视觉效果UI 界面设计

2016-05-03 10:19:04

H5技巧干货

2021-01-04 09:06:18

Next.js设计技巧

2012-02-06 20:43:20

笔记本保养技巧

2018-11-28 12:30:58

Python命令行编程语言

2021-03-18 14:02:56

iOS苹果细节
点赞
收藏

51CTO技术栈公众号