详解iOS 裁剪圆形图像并显示(类似于微信头像)

2020-01-20 23:27:38于丽

本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式。

本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述。

本文主要是在iOS 10环境下使用,此时如果要使用使用系统照片库、照相机等功能需要授权,授权方法如下:

右键点击工程目录中的“Info.plist文件——>Open As ——>Source Code”,打开复制以下你在应用中使用的隐私权限设置(描述自己修改):


  <key>NSVideoSubscriberAccountUsageDescription</key>
  <string></string>
  <key>NSBluetoothPeripheralUsageDescription</key>
  <string>蓝牙权限</string>
  <key>NSSpeechRecognitionUsageDescription</key>
  <string>语音识别权限</string>
  <key>NSSiriUsageDescription</key>
  <string>Siri权限</string>
  <key>NSRemindersUsageDescription</key>
  <string></string>
  <key>NSPhotoLibraryUsageDescription</key>
  <string>相册权限</string>
  <key>kTCCServiceMediaLibrary</key>
  <string></string>
  <key>NSMotionUsageDescription</key>
  <string>运动权限</string>
  <key>NSMicrophoneUsageDescription</key>
  <string>麦克风权限</string>
  <key>NSAppleMusicUsageDescription</key>
  <string>音乐权限</string>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>地理位置权限</string>
  <key>NSLocationUsageDescription</key>
  <string>地理位置权限</string>
  <key>NSLocationAlwaysUsageDescription</key>
  <string>地理位置权限</string>
  <key>NSHomeKitUsageDescription</key>
  <string></string>
  <key>NSHealthUpdateUsageDescription</key>
  <string>健康权限</string>
  <key>NSHealthShareUsageDescription</key>
  <string>健康权限</string>
  <key>NSContactsUsageDescription</key>
  <string>通讯录权限</string>
  <key>NSCameraUsageDescription</key>
  <string>摄像头权限</string>
  <key>NSCalendarsUsageDescription</key>
  <string>日历权限</string>

下面,正式进入本文要实现的功能的代码编写。

1. 使用Xcode的storyboard创建一个button和一个imageView

创建后的效果如下图1所示。其中,imageView的尺寸影响最终显示的效果尺寸,请根据实际情况设置。

iOS,裁剪圆形头像,裁剪头像

2. 创建一个UIImage的类别(Category)

创建新文件,选择“Objective-C File”,如下图2所示: