2013-09-23 44 views
51

Tôi có một ứng dụng kết hợp nhiều nút chỉnh hình tròn. Tuy nhiên, trong xcode 5, những người không tồn tại. Làm thế nào để tôi có được các nút tròn quay lại? Chúng rất cần thiết cho ứng dụng của tôi. Bây giờ nó chỉ là văn bản có thể bấm. Tôi làm gì? Tôi đang lên kế hoạch phát hành ứng dụng này sau, nếu điều đó có liên quan.Xcode 5 Nút xoay tròn

+0

đáng ngạc nhiên iOS 7 ứng dụng Maps có nút thông tin rect tròn. –

Trả lời

153
  1. Mở bảng phân cảnh và chọn nút bạn muốn thay đổi.
  2. Mở Trình kiểm tra nhận dạng trong Bảng tiện ích (bảng bên phải, nút thứ 3 ở trên cùng).
  3. Thêm (+) Thuộc tính thời gian chạy do người dùng xác định mới - Đường dẫn chính: layer.cornerRadius, Loại: Số, Giá trị: {integer}.

Số càng cao, các góc càng tròn. 50 là một vòng tròn cho một nút tiêu chuẩn (hoặc chiều rộng/2). Bạn sẽ không thấy thay đổi trong bảng phân cảnh, nhưng nó sẽ hiển thị khi chạy.

Screenshot of added attribute

+8

Câu trả lời như thế này là lý do tôi yêu SO. Cảm ơn nhiều. – tim

+0

Tốt để học cách làm thủ thuật từ IB –

3

Đặt hình nền trên các nút có đường viền mong muốn, sử dụng hình ảnh có thể kéo dài.

Kiểm tra liên kết này cho một ví dụ điển hình: Stretch background image for UIButton

OR, nắm lấy iOS7 UI mới và loại bỏ các biên giới ... ;-)

10

Dưới đây là một câu trả lời tương tự như ta đã ban cho this question:

-EDIT-
Thêm: #import <QuartzCore/QuartzCore.h> vào đầu tệp .h của bạn.

Nếu bạn muốn góc tròn chỉ ctrl-drag từ nút đến file .h của bạn, gọi nó là cái gì đó như roundedButton và thêm này trong viewDidLoad của bạn:

CALayer *btnLayer = [roundedButton layer]; 
[btnLayer setMasksToBounds:YES]; 
[btnLayer setCornerRadius:5.0f]; 

Để thực hiện các nút màu trắng (hoặc bất kỳ màu nào khác), chọn các thuộc tính thanh tra và di chuyển xuống phần View, chọn Background và thay đổi nó sang màu trắng:

enter image description here

+4

Rất quan trọng. điều này sẽ không hoạt động trừ khi bạn thêm #import skinsfan00atg

+0

Điểm công bằng & +1. Tôi đã chỉnh sửa câu trả lời để bao gồm nó. – Robert

+1

cảm ơn, không phải lo lắng, chỉ cần cho tôi một giây vì vậy tôi muốn chia sẻ. cảm ơn cho công việc khó khăn hơn :-) – skinsfan00atg

3

tương tự có thể đạt được bằng cách programmatically.where MyView là IBOutlet đối tượng.

myView.layer.cornerRadius = 5; 
myView.layer.masksToBounds = YES; 
3

Swift 2.0:

let sampleButton = UIButton(frame: CGRectMake(100,100,200,100)) 
    sampleButton.titleLabel?.text = "SAMPLE" 
    sampleButton.backgroundColor = UIColor.grayColor() 

    //Setting rounded boarder 
    sampleButton.layer.cornerRadius = 10 
    sampleButton.layer.borderWidth = 1 
    sampleButton.layer.borderColor = UIColor.blackColor().CGColor 

    self.view.addSubview(sampleButton) 
3

Bấm vào nút bạn muốn để có được làm tròn. Sau đó, nhấp vào Nhận dạngThanh tra ở phía trên cùng bên phải. Ở đó Bạn có thể xem Thuộc tính Thời gian chạy do Người dùng Xác định. Bấm vào cộng (+)

see image

Bạn sẽ không nhìn thấy những thay đổi trong Xem. Bạn sẽ thấy nó trong Runtime

1

Trong Swift 3: chúng ta có thể thêm nó viewDidLoad

button.layer.cornerRadius = 0.5*button.bounds.size.width 
    button.clipsToBounds = true