国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MonoTouch-iOS使用UIImagePickerController打開圖片庫和相機選擇圖片修改頭像

2019-11-14 18:45:27
字體:
來源:轉載
供稿:網友

application tried to PResent modally an active controller <UIImagePickerController: 0x7b6ff400>

1,AddGestureRecognizer為圖片視圖添加事件

 //圓角頭像 _avatarView = new UIImageView(new RectangleF(_blockSpace, _blockSpace, 2 * _avatarRadius, 2 * _avatarRadius));UIImage img = UIImage.FromFile("profile-pic.jpg");_avatarView.Layer.Contents = img.CGImage;_avatarView.Layer.MasksToBounds = true;//如果沒有將MasksToBounds設置為true,圖片圓角無效_avatarView.Layer.CornerRadius = _avatarRadius; _avatarView.UserInteractionEnabled = true;//用戶互動屬性()_avatarView.AddGestureRecognizer(new UITapGestureRecognizer(onClickImage));

 

 void onClickImage() {            try            {                //UIActionSheet是在iOS彈出的選擇按鈕項的對話框,可以添加多項,并為每項添加點擊事件。                //ChangePictureActionSheetDelegate:通過重寫UIActionSheetDelegate的Clicked方法,獲取當前點擊項                UIActionSheet _actionSheet = new UIActionSheet("選擇圖片",                new ChangePictureActionSheetDelegate(this,_avatarView), "取消",                null, "從相片庫", "拍照");                                _actionSheet.ShowInView(this.View);            }            catch (Exception e)            {                Console.WriteLine("Error:" + e.Message);            } }

 UIActionSheet是在iOS彈出的選擇按鈕項的對話框,可以添加多項,并為每項添加點擊事件。 

 

2,獲取UIActionSheet選擇項

 關鍵類:UIActionSheetDelegate。通過重寫UIActionSheetDelegate的Clicked方法,獲取UIActionSheet當前點擊項 

class ChangePictureActionSheetDelegate : UIActionSheetDelegate    {        UIViewController _controller;        UIImageView _img;        UIImagePickerController picker;        public ChangePictureActionSheetDelegate(UIViewController controller,UIImageView img)        {            _controller = controller;            _img = img;        }        public override void Clicked(UIActionSheet actionSheet, int buttonIndex)        {            Console.WriteLine("你選擇了:" + buttonIndex);            switch (buttonIndex)            {                case 1: CallPhoto(UIImagePickerControllerSourceType.Camera); break;                case 0: CallPhoto(UIImagePickerControllerSourceType.PhotoLibrary); break;                default: break;            }        }                        private void CallPhoto(UIImagePickerControllerSourceType type)        {            Console.WriteLine("Begin...");            if (UIImagePickerController.IsSourceTypeAvailable(type))            {                try                {                    picker = new UIImagePickerController();                    picker.SourceType = type;                    //允許編輯圖片                    picker.AllowsEditing = true;                    if (_controller.PresentedViewController == null)                    {                        _controller.PresentModalViewController(picker, false);                    }                    //picker.FinishedPickingImage += picker_FinishedPickingImage;(無效)                    //AvatarPickerDelegate:通過重寫UIImagePickerControllerDelegate的FinishedPickingImage方法獲取選擇的圖片                    picker.Delegate =new AvatarPickerDelegate(_img);                    Console.WriteLine("Finished");                }                catch (Exception e)                {                    Console.WriteLine("Error:" + e.Message);                }            }            else            {                Console.WriteLine("該設備不支持此操作");            }        }    }

 

3,獲取選擇的圖片

關鍵類:UIImagePickerControllerDelegate。通過重寫UIImagePickerControllerDelegate的FinishedPickingImage方法獲取選擇的圖片

class AvatarPickerDelegate:UIImagePickerControllerDelegate {        UIImageView _avatar;        public AvatarPickerDelegate(UIImageView _imgView) {            _avatar = _imgView;        }                public override void FinishedPickingImage(UIImagePickerController picker, UIImage image, NSDictionary editingInfo)        {            Console.WriteLine("選擇了圖片");            if (image == null)            {                Console.WriteLine("Null");            }           //更新顯示圖片            _avatar.Layer.Contents = image.CGImage;            //關閉UIImagePicker            picker.DismissModalViewControllerAnimated(true);            Console.WriteLine("完成選擇");                    }    }

  




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 驻马店市| 岗巴县| 梅州市| 南皮县| 太白县| 射洪县| 三原县| 肥东县| 五峰| 信宜市| 繁峙县| 屯昌县| 普兰店市| 秦安县| 称多县| 冀州市| 青州市| 阳春市| 合阳县| 聂荣县| 兴海县| 陵水| 邮箱| 甘孜| 黎平县| 罗江县| 鹿邑县| 南汇区| 通榆县| 阿勒泰市| 清涧县| 定陶县| 多伦县| 定州市| 牟定县| 宜兴市| 宁乡县| 鄯善县| 临泉县| 邵阳市| 内乡县|