實(shí)用小技巧(五):通過(guò)相冊(cè)或者相機(jī)更改圖標(biāo)

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.06.21

前言

很多app都有建立小組或者社區(qū)的功能多望,或者給某人添加幾個(gè)描述標(biāo)簽等等善延,這些功能都需要?jiǎng)討B(tài)的添加標(biāo)簽視圖贷痪,這一篇就講述一下添加方法。感興趣的可以看看我寫(xiě)的其他小技巧
1. 實(shí)用小技巧(一):UIScrollView中上下左右滾動(dòng)方向的判斷

2. 實(shí)用小技巧(二):屏幕橫豎屏的判斷和相關(guān)邏輯
3.實(shí)用小技巧(三):點(diǎn)擊手勢(shì)屏蔽子視圖的響應(yīng)
4.實(shí)用小技巧(四):動(dòng)態(tài)的增刪標(biāo)簽視圖

需求介紹

我們做app的時(shí)候很多時(shí)候都需要上傳圖片帖鸦,最常見(jiàn)的就是上傳用戶(hù)的頭像芝薇,這里就包括多種方式,其中最常見(jiàn)的就是從本地相冊(cè)或者相機(jī)拍攝上傳作儿,這一篇我就說(shuō)一下這里的實(shí)現(xiàn)洛二。

實(shí)現(xiàn)過(guò)程

我們都知道ios9以后,蘋(píng)果出于安全性的考慮攻锰,在打開(kāi)本地相冊(cè)或者相機(jī)的時(shí)候需要權(quán)限的確定灭红,需要配置plist文件,增加兩個(gè)鍵值對(duì)口注,具體如下圖所示变擒。

更改權(quán)限

下面我們就直接看代碼吧。

1.JJAvatarVC.m

#import "JJAvatarVC.h"
#import "Masonry.h"

@interface JJAvatarVC () <UIImagePickerControllerDelegate>

@property (nonatomic, strong) UIImageView *avatarImageView;
@property (nonatomic, strong) UILabel *nickNameLabel;
@property (nonatomic, strong) UIImage *pickerImage;

@end

@implementation JJAvatarVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.title = @"頭像更換";
    
    [self setupUI];
}

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
    
    //頭像
    [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.center.equalTo(self.view);
        make.height.width.equalTo(@120);
    }];
    
    //昵稱(chēng)
    [self.nickNameLabel sizeToFit];
    [self.nickNameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerX.equalTo(self.avatarImageView);
        make.top.equalTo(self.avatarImageView.mas_bottom).offset(15.0);
    }];
}

- (void)dealloc
{
    NSLog(@"%s",__FUNCTION__);
}

#pragma mark - Object Private Function

- (void)setupUI
{
    self.view.backgroundColor = [UIColor whiteColor];
    
    //頭像
    UIImageView *avatarImageView = [[UIImageView alloc] init];
    avatarImageView.image = [UIImage imageNamed:@"zhanweitu"];
    avatarImageView.userInteractionEnabled = YES;
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureDidTapped)];
    [avatarImageView addGestureRecognizer:tapGesture];
    [self.view addSubview:avatarImageView];
    self.avatarImageView = avatarImageView;
    
    //昵稱(chēng)
    UILabel *nickNameLabel = [[UILabel alloc] init];
    nickNameLabel.text = @"刀客傳奇";
    nickNameLabel.textColor  = [UIColor blueColor];
    nickNameLabel.font = [UIFont boldSystemFontOfSize:17.0];
    [self.view addSubview:nickNameLabel];
    self.nickNameLabel = nickNameLabel;
}

- (void)choosePictureWithType:(NSString *)type
{
    UIImagePickerController *pickVC = [[UIImagePickerController alloc] init];
    if ([type isEqualToString:@"1"]) {
        pickVC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    }
    else {
        pickVC.sourceType = UIImagePickerControllerSourceTypeCamera;
    }
    pickVC.allowsEditing = YES;
    pickVC.delegate = self;
    [self presentViewController:pickVC animated:YES completion:nil];

}

#pragma mark - Action && NOtification

- (void)tapGestureDidTapped
{
    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
    
    UIAlertAction *albumAction = [UIAlertAction actionWithTitle:@"從相冊(cè)中選擇" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        
        [self choosePictureWithType:@"1"];
    }];
    
    UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:@"照相機(jī)" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        
        [self choosePictureWithType:@"2"];
    }];
    
    [alertVC addAction:albumAction];
    [alertVC addAction:cameraAction];
    
    [self presentViewController:alertVC animated:YES completion:nil];
}

#pragma mark - UIImagePickerControllerDelegate

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
    [picker dismissViewControllerAnimated:YES completion:nil];
    self.pickerImage = info[UIImagePickerControllerOriginalImage];
    self.avatarImageView.image = self.pickerImage;
}

@end

實(shí)現(xiàn)結(jié)果

下面我們就看一下實(shí)現(xiàn)結(jié)果寝志,主要如下圖所示:

原始界面
選擇相冊(cè)
相冊(cè)權(quán)限確認(rèn)
選擇圖片
圖片展示

下面我們看一下從相機(jī)選擇照片的實(shí)現(xiàn)效果娇斑。

相機(jī)權(quán)限確認(rèn)
選擇圖片
圖片展示

可見(jiàn)實(shí)現(xiàn)了想要的效果。

后記

這個(gè)還是很簡(jiǎn)單的材部,主要就是sourceType的差別毫缆,我們選擇不同的枚舉值,就可以選擇是相冊(cè)還是相機(jī)了乐导,謝謝大家苦丁,未完,待續(xù)~~~

秋意濃
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末物臂,一起剝皮案震驚了整個(gè)濱河市旺拉,隨后出現(xiàn)的幾起案子产上,更是在濱河造成了極大的恐慌,老刑警劉巖蛾狗,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晋涣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡沉桌,警方通過(guò)查閱死者的電腦和手機(jī)谢鹊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)留凭,“玉大人佃扼,你說(shuō)我怎么就攤上這事“梗” “怎么了兼耀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)挎扰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)巢音,這世上最難降的妖魔是什么遵倦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮官撼,結(jié)果婚禮上梧躺,老公的妹妹穿的比我還像新娘。我一直安慰自己傲绣,他們只是感情好掠哥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著秃诵,像睡著了一般续搀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菠净,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天禁舷,我揣著相機(jī)與錄音,去河邊找鬼毅往。 笑死牵咙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的攀唯。 我是一名探鬼主播洁桌,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼侯嘀!你這毒婦竟也來(lái)了另凌?” 一聲冷哼從身側(cè)響起谱轨,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎途茫,沒(méi)想到半個(gè)月后碟嘴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囊卜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年娜扇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栅组。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雀瓢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玉掸,到底是詐尸還是另有隱情刃麸,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布司浪,位于F島的核電站泊业,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏啊易。R本人自食惡果不足惜吁伺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望租谈。 院中可真熱鬧篮奄,春花似錦、人聲如沸割去。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呻逆。三九已至夸赫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咖城,已是汗流浹背憔足。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酒繁,地道東北人滓彰。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像州袒,于是被迫代替她去往敵國(guó)和親揭绑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 當(dāng)今社會(huì)菇存,“畫(huà)家”滿(mǎn)街走。有人學(xué)畫(huà)三天就自稱(chēng)畫(huà)家了邦蜜。所有學(xué)畫(huà)的人都希望有一個(gè)速成班依鸥,畢業(yè)之后就成了“著名畫(huà)家 吳冠...
    Flying_Dragon閱讀 1,786評(píng)論 5 27
  • 天下第一好事 哇哈哈~恭喜你榮獲此笑書(shū),獲取此書(shū)一定是你今生最大的幸運(yùn)~ 獲取此書(shū)你會(huì):長(zhǎng)生不老悼沈,不死贱迟,永遠(yuǎn)青春美...
    檸檬霜閱讀 345評(píng)論 6 5
  • 小女孩撕心裂肺的哭著叫媽媽?zhuān)瑓s只能靠著自己早上的記憶找回家的路,但孩子很小絮供,也只記得家離集市很遠(yuǎn)衣吠,早上走了好久才到...
    卡爾蔚然閱讀 420評(píng)論 0 0