2016-11-22 2 views
0

Я пытаюсь создать кнопку полукруг в форме.Сделать кнопку любого размера?

Внутри кнопки класса

layoutSubviews() { 
    createSemiCirclePath() 
} 

func createSemiCirclePath(){ 
     self.translatesAutoresizingMaskIntoConstraints = false 
     self.clipsToBounds = true 
     semiCircleShape.path = UIBezierPath.init(arcCenter: CGPoint(x: self.frame.size.width/2 , y:0), radius: self.frame.size.width/2, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: true).cgPath 
     self.layer.addSublayer(semiCircleShape) 
     self.layer.masksToBounds = true 

    } 

Я получаю это:

enter image description here

Но я хочу, как это:

enter image description here

Если я пытаюсь

func createSemiCirclePath(){ 
     self.translatesAutoresizingMaskIntoConstraints = false 
     self.clipsToBounds = true 
     semiCircleShape.path = UIBezierPath.init(arcCenter: CGPoint(x: self.frame.size.width/2 , y:0), radius: self.frame.size.width/2, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: true).cgPath 
     self.layer.mask = semiCircleShape 
     self.layer.masksToBounds = true 

    } 

Моя кнопка

enter image description here

Это также позволяет нажать менее 50% высоты кнопки, которые мне не нужно.

(в 1-коде)

Проблема заключается в том, только черная часть должна быть в состоянии нажать-и синяя часть должна быть скрыта, то есть, он должен клипом на подуровень.

Любое предложение приветствуется. Спасибо.

+0

Пожалуйста, проверьте этот http://stackoverflow.com/questions/1561585/iphone-button-with-non-rectangle-shape –

+0

возможный дубликат HTTP://stackoverflow.com/a/33310108/5215474 – Saranjith

+0

да, но кнопка полного прямоугольника имеет возможность нажатия на кнопку не только полуокружности. –

ответ

0

Может быть, вы можете подклассифицировать класс UIControl, он содержит методы обработки сенсорных событий, а также класс, предназначенный для обработки цели/выбора.
Также этот класс не содержит пользовательскую логику рисования как UIButton. В вас, например, вы должны распространяться только UIControl и добавить

controlInstance.backgroundColor = [UIColor clearColor]; 
+0

nope, его наследует непосредственно из класса UIButton. –

+0

Разве это не ваш класс? –

+0

class semiCircle: UIButton this my class –

Смежные вопросы