У меня есть пользовательская ячейка для моего UITableView. Если пользователь выбрал изображение для ячейки элемента будет показывать изображение: Используйте UIImageView или UIView для рисования в swift
если нет, то я буду показывать первые два символа имени элемента:
Я использую следующий код из кода краски сделать прямоугольник:
public class CircleStyleKit : NSObject {
//// Drawing Methods
public dynamic class func drawCanvas1(frame targetFrame: CGRect = CGRect(x: 0, y: 0, width: 38, height: 38), resizing: ResizingBehavior = .aspectFit, circleLable: String = "DR", circleSize: CGSize = CGSize(width: 38, height: 38), textSize: CGFloat = 17) {
//// General Declarations
let context = UIGraphicsGetCurrentContext()!
//// Resize to Target Frame
context.saveGState()
let resizedFrame: CGRect = resizing.apply(rect: CGRect(x: 0, y: 0, width: 38, height: 38), target: targetFrame)
context.translateBy(x: resizedFrame.minX, y: resizedFrame.minY)
context.scaleBy(x: resizedFrame.width/38, y: resizedFrame.height/38)
} // It's too long
Я показал часть кода, потому что это слишком долго.
Затем я использовал UIView, чтобы сделать этот прямоугольник:
import UIKit
class CirclyStyleView: UIView {
override func draw(_ rect: CGRect) {
CircleStyleKit.drawCanvas1()
}
}
}
Есть две проблемы:
Во-первых, если я использую UIImageView в моем раскадровки я просто рисовать образ и Я не знаю, могу ли я рисовать прямоугольник с моим кодом или нет. Однако I проверял, что он не работает.
Во-вторых, если я использую UIView, я могу нарисовать прямоугольник, но если я хочу нарисовать изображение, я должен использовать
UIColor(patternImage: UIImage(named: "picName")!)
, но я не могу изменить этот кадр изображения так, как я сделал для просмотра изображения. Например, сделайте это круг, как я показал на картинке.Вопрос в том, могу ли я использовать UIImageView, и есть ли способ сделать мой прямоугольник в UIImageView Или я могу использовать UIView и есть ли способ установить свой собственный образ. Я имею в виду изменение размера изображения и рамки.