신속하게 원에 이미지를 설정하는 방법
신속하게 서클 사진을 만들려면 어떻게해야합니까?
내 ViewController :
import UIKit
import Foundation
class FriendsViewController : UIViewController{
@IBOutlet weak var profilPicture: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
profilPicture = UIImageView(frame: CGRectMake(0, 0, 100, 100))
}
}
내 profilPicture = UIImageView(frame: CGRectMake(0, 0, 100, 100))
..
예 : http://www.appcoda.com/ios-programming-circular-image-calayer/
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var image: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
image.layer.borderWidth = 1
image.layer.masksToBounds = false
image.layer.borderColor = UIColor.black.cgColor
image.layer.cornerRadius = image.frame.height/2
image.clipsToBounds = true
}
그게 전부입니다 ....
간단하게 확장을 만들 수 있습니다.
import UIKit
extension UIImageView {
func setRounded() {
let radius = CGRectGetWidth(self.frame) / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
}
}
다음과 같이 사용하십시오.
imageView.setRounded()
@DanielQ의 답변을 기반으로
Swift 4 및 Swift 3
import UIKit
extension UIImageView {
func setRounded() {
self.layer.cornerRadius = (self.frame.width / 2) //instead of let radius = CGRectGetWidth(self.frame) / 2
self.layer.masksToBounds = true
}
}
다음 ViewController
과 함께 사용할 수 있습니다 .
imageView.setRounded()
Swift에서 UIImageView를 원형으로 만들고 싶다면 다음 코드를 사용할 수 있습니다.
imageView.layer.cornerRadius = imageView.frame.height / 2
imageView.clipsToBounds = true
이것이 누구에게도 도움이되는지 모르겠지만 한동안이 문제로 어려움을 겪고 있었지만 온라인 답변 중 어느 것도 나를 도왔습니다. 나에게 문제는 스토리 보드의 이미지에 다른 높이와 너비가 설정되어 있다는 것입니다. 나는 스택에서 모든 솔루션을 시도해 보았고 그렇게 간단한 것으로 밝혀졌습니다. 둘 다 200으로 설정하면 서클 프로필 이미지가 완벽했습니다. 이것은 내 VC의 코드였습니다.
profileImage2.layer.cornerRadius = profileImage2.frame.size.width/2
profileImage2.clipsToBounds = true
대한 스위프트 4 :
import UIKit
extension UIImageView {
func makeRounded() {
let radius = self.frame.width/2.0
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
}
}
위의 모든 답변으로는 제 경우 문제를 해결할 수 없습니다. 내는 ImageView
맞춤화에 배치되었다 UITableViewCell
. 따라서 layoutIfNeeded()
여기 에서 메서드를 호출했습니다 . 예:
class NameTableViewCell:UITableViewCell,UITextFieldDelegate { ...
override func awakeFromNib() {
self.layoutIfNeeded()
profileImageView.layoutIfNeeded()
profileImageView.isUserInteractionEnabled = true
let square = profileImageView.frame.size.width < profileImageView.frame.height ? CGSize(width: profileImageView.frame.size.width, height: profileImageView.frame.size.width) : CGSize(width: profileImageView.frame.size.height, height: profileImageView.frame.size.height)
profileImageView.addGestureRecognizer(tapGesture)
profileImageView.layer.cornerRadius = square.width/2
profileImageView.clipsToBounds = true;
}
이 방법은 가장 저렴한 방법이며 항상 이미지보기를 둥글게 유지합니다.
class RoundedImageView: UIImageView {
override init(frame: CGRect) {
super.init(frame: frame)
clipsToBounds = true
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
clipsToBounds = true
}
override func layoutSubviews() {
super.layoutSubviews()
assert(bounds.height == bounds.width, "The aspect ratio isn't 1/1. You can never round this image view!")
layer.cornerRadius = bounds.height / 2
}
}
The other answers are telling you to make views rounded based on frame calculations set in a UIViewController
s viewDidLoad()
method. This isn't correct, since it isn't sure what the final frame will be.
First you need to set equal width and height for getting Circular ImageView.Below I set width and height as 100,100.If you want to set equal width and height according to your required size,set here.
var imageCircle = UIImageView(frame: CGRectMake(0, 0, 100, 100))
Then you need to set height/2 for corner radius
imageCircle.layer.cornerRadius = imageCircle.frame.size.height/2
imageCircle.layer.borderWidth = 1
imageCircle.layer.borderColor = UIColor.blueColor().CGColor
imageCircle.clipsToBounds = true
self.view.addSubview(imageCircle)
For Swift3/Swift4 Developers:
let radius = yourImageView.frame.width / 2
yourImageView.layer.cornerRadius = radius
yourImageView.layer.masksToBounds = true
struct CircleImage: View {
var image: Image
var body: some View {
image
.clipShape(Circle())
}
}
This is correct for SwiftUI
// code to make the image round
import UIKit
extension UIImageView {
public func maskCircle(anyImage: UIImage) {
self.contentMode = UIViewContentMode.ScaleAspectFill
self.layer.cornerRadius = self.frame.height / 2
self.layer.masksToBounds = false
self.clipsToBounds = true
// make square(* must to make circle),
// resize(reduce the kilobyte) and
// fix rotation.
// self.image = prepareImage(anyImage)
}
}
// to call the function from the view controller
self.imgCircleSmallImage.maskCircle(imgCircleSmallImage.image!)
If your image is rounded, it would have a height and width of the exact same size (i.e 120). You simply take half of that number and use that in your code (image.layer.cornerRadius = 60).
참고URL : https://stackoverflow.com/questions/28074679/how-to-set-image-in-circle-in-swift
'Development Tip' 카테고리의 다른 글
문자열 배열에서 문자열을 검색하는 방법 (0) | 2020.11.02 |
---|---|
PHP로 1 일 빼기 (0) | 2020.11.02 |
Android에서 길게 누르기 감지 (0) | 2020.11.02 |
모달 UIViewController의 애니메이션 스타일을 어떻게 변경할 수 있습니까? (0) | 2020.11.02 |
MySQL은 큰 데이터베이스에서 중복을 빠르게 제거 (0) | 2020.11.02 |