2015-01-15 19 views
6

Tôi muốn một màu trắng trông phẳng xung quanh UIButton. Tôi muốn nó trong Storyboard hoặc lập trình. Mã của tôi không hoạt động.Các nút iOS 8 có viền Swift

Code:

UIButton.layer.cornerRadius = 2; 
UIButton.layer.borderWidth = 1; 
UIButton.layer.borderColor = UIColor.whiteColor() 
+1

Bạn có thể xây dựng trên "không được làm việc"? Có phải vì bạn đang cố gắng thiết lập các thuộc tính trên lớp UIButton thay vì một thể hiện của lớp đó? –

+1

UiButton.type không có thành viên có tên lớp là lỗi –

+0

Phải, loại UIButton không có thuộc tính bạn đang cố truy cập. Bạn cần một thể hiện của lớp. –

Trả lời

16

Bạn nên tạo tham khảo lối thoát cho nút của bạn từ kịch bản để VC của bạn tên là ví dụ myButton hơn thiết lập thuộc tính của nó

myButton.layer.cornerRadius = 2; 
myButton.layer.borderWidth = 1; 
myButton.layer.borderColor = UIColor.whiteColor().CGColor 
1

như 0x7fffffff nói. UIButton là lớp nó có thể được instatiated bu gọi constructor của nó như thế này

let instanceOfUIButton = UIButton() 

sau đó bạn có thể thiết lập các thuộc tính mong muốn:

instanceOfUIButton.layer.cornerRadius = 2; 
5

Bạn không cần phải làm điều này với mã một trong hai. Bạn có thể tạo hình ảnh có thể kéo giãn và đặt hình ảnh đó thành hình nền của nút trong trình kiểm tra thuộc tính.

enter image description here

+0

không khả dụng – ursa

+0

Cảm ơn, liên kết đã bị xóa – iOSAaronDavid

0

Trong Xcode 8.2 (Swift 3), bạn có thể sử dụng "Identity Inspector Tab". Tìm kiếm "Thuộc tính thời gian chạy do người dùng xác định", sau khi chọn UIButton của bạn. Ở đó bạn có thể xác định các thuộc tính này:

  1. Đường dẫn chính: layer.cornerRadius; 2-Type: Number, 3-Value: 2
  2. Đường dẫn chính: layer.borderWidth; 2-Type: Number, 3-Value: 1
  3. Đường dẫn chính: layer.borderColor; 2-Type: Color, 3-Value: "chọn màu trắng hoặc một số khác"
0

Một tùy chọn khác thay vì tạo tham chiếu cho mỗi nút sẽ là tạo lớp con của loại UIButton. Sau đó bạn có thể thiết lập các thuộc tính trong lớp con. Tiếp theo, bạn có thể thay đổi lớp của tất cả các nút trong bảng phân cảnh cần có các thuộc tính giống nhau.

class MyButton: UIButton { 

override func draw(_ rect: CGRect) { 
     super.draw(rect) 
     layer.borderWidth = 1.0 
     layer.borderColor = UIColor.White 
     layer.cornerRadius = 2 
    } 

} 
0

Thêm dòng này ở phía trên cùng

myButton.layer.masksToBounds = true 
Các vấn đề liên quan