2017-07-31 14 views
0

円イメージビューを設定しようとしています。操作を実行するためにコーナーの半径を設定しても、何もしません。私は、さまざまなスレッドやソリューションどれも見てきましたが方法のコーナー半径が機能していませんか?

import UIKit 

class AlterProfileViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    view?.backgroundColor = UIColor.white 
    navigationItem.title = "Profile Settings" 
    view.addSubview(selectProfileImage) 


    ///Constraints for all views will go here 

    _ = selectProfileImage.anchor(view.centerYAnchor, left: view.leftAnchor, bottom: nil, right: nil, topConstant: -275, leftConstant: 135, bottomConstant: 0, rightConstant: 0, widthConstant: 100, heightConstant: 100) 

    // selectProfileImage.layer.cornerRadius = selectProfileImage.frame.size.width/2 

    /////////////////////////////////////////////// 


    // Do any additional setup after loading the view. 
} 





override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


//Where all buttons and labels will be added 

//will just be a nice looking image view to be next to the profile settings button 
lazy var selectProfileImage: UIImageView = { 
    let selectPicture = UIImageView() 
    // self.selectProfileImage.layer.cornerRadius = self.selectProfileImage.frame.size.width/2; 
    selectPicture.image = UIImage(named: "Paris") 

    // selectPicture.layer.cornerRadius = selectPicture.frame.size.width/2; 
    selectPicture.clipsToBounds = true 
    selectPicture.translatesAutoresizingMaskIntoConstraints = false 
    selectPicture.contentMode = .scaleAspectFill 
    selectPicture.layer.shouldRasterize = true 
    selectPicture.layer.masksToBounds = true 
    return selectPicture 
}() 

/////////////////////////////////////////////////////////////////////////////////// 



} 

なしあなたは私が単にdoesnのイメージ図を疑うだろう自動レイアウトしてレイアウトすることを考えると、実際に種類の

+0

selectPicture.layer.cornerRadiusを追加= 4.0 –

答えて

3

今困惑イムを動作するようには思えません働きました半径を計算するときに正しいサイズを持っていません。イメージビューは、0,0のサイズで初期化され、計算された半径は0になります。代わりに、スーパーを呼び出した後viewDidLayoutSubviewsに半径算出を移動:

func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    selectProfileImage.layer.cornerRadius = selectProfileImage.frame.size.width/2; 
    selectProfileImage.layer.masksToBounds = true 
} 
+0

ありがとう、これはこれは、あなたの質問に目的の答えであれば、あなたがする必要があることに注意してください@HiDungLing完璧 – HiDungLing

+0

を働きましたそれを受け入れる(緑のダニ)。 –

関連する問題