Создавать линии сетки и разрешать пользователю включать / выключать вид линий сетки - PullRequest
2 голосов
/ 05 сентября 2011

Я хотел бы создать подход с использованием линии сетки в моем приложении и позволить пользователю включать / выключать вид сетки. С ним не нужно иметь никакого обнаружения касания или логики, связанной с ним. Просто линии сетки для пользователя, чтобы увидеть и включить их / выключить. Очевидным решением для этого было бы добавить изображение сетки к моему виду и отображать его всякий раз, когда это необходимо, используя изображение. Но это вариант, который я не могу принять. Я должен сделать это программно. Спасибо за ваше время. изображение того, что я планирую реализовать. Есть идеи ? Основная графика или много мнений?

Ответы [ 3 ]

1 голос
/ 26 ноября 2011

Завершено с помощью этого:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sample.png"]];
1 голос
/ 05 сентября 2011

Создайте подкласс UIView и создайте там 2 отдельных цикла.Один для вертикальных линий и один для горизонтальных линий.В цикле вертикальных линий создайте UIView шириной 1 пиксель и высотой 768 пикселей.В горизонтальном режиме создайте их высотой 1px и шириной 1024px.

Чтобы скрыть и отобразить его, просто переключите скрытое свойство представления в подклассе либо на YES, либо на NO.а также просто используйте стандартный UIView.

0 голосов
/ 19 июля 2017

Я использовал это для Swift3

class GridView: UIView {

    var numberOfColumns: Int = 2
    var numberOfRows: Int = 2
    var lineWidth: CGFloat = 1.0
    var lineColor: UIColor = UIColor.white

    override func draw(_ rect: CGRect) {
        if let context = UIGraphicsGetCurrentContext() {

            context.setLineWidth(lineWidth)
            context.setStrokeColor(UIColor.white.cgColor)

            let columnWidth = Int(rect.width) / (numberOfColumns + 1)
            for i in 1...numberOfColumns {
                var startPoint = CGPoint.zero
                var endPoint = CGPoint.zero
                startPoint.x = CGFloat(columnWidth * i)
                startPoint.y = 0.0
                endPoint.x = startPoint.x
                endPoint.y = frame.size.height
                context.move(to: CGPoint(x: startPoint.x, y: startPoint.y))
                context.addLine(to: CGPoint(x: endPoint.x, y: endPoint.y))
                context.strokePath()
            }

            let rowHeight = Int(rect.height) / (numberOfRows + 1)
            for j in 1...numberOfRows {
                var startPoint = CGPoint.zero
                var endPoint = CGPoint.zero
                startPoint.x = 0.0
                startPoint.y = CGFloat(rowHeight * j)
                endPoint.x = frame.size.width
                endPoint.y = startPoint.y
                context.move(to: CGPoint(x: startPoint.x, y: startPoint.y))
                context.addLine(to: CGPoint(x: endPoint.x, y: endPoint.y))
                context.strokePath()
            }
        }
    }
}

И установите его цвет фона как clear.

Код также присутствует здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...