###前提・実現したいこと
UIViewに枠線をつけ画面中央に配置しており、その中に収まっている部分のUIImagewのimageを取得したいのです。
Viewに収まっている部分をconvertメソッドでImageViewの座標部分を取得
しようとしているのですが、うまくいきません。
アドバイスいただければありがたいです。
###発生している問題・エラーメッセージ
ここの変換がうまくいってないのではないかと考えております。 let rect = myView.convert(myView.bounds, to: imageView)
###該当のソースコード
lass CutViewController: UIViewController , UIScrollViewDelegate { @IBOutlet weak var scrollView: UIScrollView! var imageView: UIImageView! var myView: UIView! override func viewDidLoad() { super.viewDidLoad() scrollView.backgroundColor = UIColor.gray scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height+60) scrollView.bounces = true scrollView.indicatorStyle = .white scrollView.scrollIndicatorInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) scrollView.delegate = self imageView = UIImageView(frame: CGRect(x:0,y:0,width:300,height:300)) let myImage = UIImage(named: "aaa_60@3x.png") imageView.image = myImage imageView.layer.position = CGPoint(x: self.view.center.x, y: self.view.center.y) scrollView.addSubview(imageView) self.view.addSubview(scrollView) myView = UIView(frame: CGRect(x:0,y:0,width:180,height:180)) myView.layer.position = CGPoint(x: self.view.center.x, y: self.view.center.y) myView.layer.borderColor = UIColor.white.cgColor myView.layer.borderWidth = 2.0 myView.layer.zPosition = 100 scrollView.addSubview(myView) self.setButton() } func cutImageView(){ ここの変換がうまくいかない。 let rect = myView.convert(myView.bounds, to: imageView) print("bouds") print(myView.bounds) print("frame") print(myView.frame) print("rect") print(rect) let cropCGImageRef = imageView.image?.cgImage?.cropping(to: rect) let cropImage = UIImage(cgImage: cropCGImageRef!) let view3 = UIImageView(frame: CGRect(x:0,y:0,width:180,height:180)) view3.image = cropImage self.view.addSubview(view3) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func setButton(){ let button = UIButton(frame: CGRect(x:0,y:0,width:50,height:50)) button.setTitle("ボタン", for: .normal) button.setTitleColor(UIColor.blue, for: .normal) button.addTarget(self, action: #selector(buttonEvent(sender:)), for: .touchUpInside) button.sizeToFit() button.center = self.view.center self.view.addSubview(button) } func buttonEvent(sender: UIButton) { cutImageView() } func scrollViewDidScroll(_ scrollView: UIScrollView) { myView.layer.position = CGPoint(x: self.view.center.x + scrollView.contentOffset.x, y: self.view.center.y + scrollView.contentOffset.y) func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { print("beginDragging") } }
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/30 05:48