Tôi muốn di chuyển nút đến giữa màn hình theo mã. Tôi thấy một nơi nào đó nó chỉ là vài dòng mã, nhưng không thể tìm thấy chúng.iOS SDK: Di chuyển nút vào giữa màn hình theo mã
Trả lời
này nên làm điều đó:
yourButton.frame = CGRectMake(self.view.frame.size.width/2 - yourButton.frame.size.width/2, self.view.frame.size.height/2 - yourButton.frame.size.height/2, yourButton.frame.size.width, yourButton.frame.size.height);
này tập trung vào nút ở SuperView của nó:
CGRect bounds = button.superview.bounds;
button.center = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds));
Đây không phải là tương đương với '[button setCenter: superview.center]'? –
Không, 'trung tâm' được đo trong hệ thống tọa độ của giám sát, do đó, sẽ đặt nút 'center' ở giữa superview của superview. –
Cả rooster117 và DavidNg câu trả lời dường như đúng. Chỉ cần thêm một "tùy chọn" khác cho bạn, nếu bạn muốn thực hiện hoạt ảnh này, bạn nên làm:
NSTimeInterval seconds = 1.0;
[UIView animateWithDuration:seconds animations:^{
//here you should write any reframing/repositioning code
}];
hi Bruno, nếu tôi muốn một nút để giới hạn với một màu sắc cụ thể, màu đỏ và trong khi ví dụ? – DavidNg
Chỉ cần đặt mã thay đổi màu bên trong khối hoạt ảnh. Một cái gì đó như: NSTimeInterval seconds = 1.0; [UIView animateWithDuration: giây hoạt ảnh:^{ [[myButton setBackgroundColor: [UIColor redColor]]; }]; –
Có một số cách để làm điều đó mà không cần viết bất kỳ mã nào. Nếu bạn muốn đặt nút vào giữa màn hình bằng cách sử dụng cài đặt giao diện, bạn có thể view my clip.
bntTimeEtrySave.Frame =new CoreGraphics.CGRect (
this.View.Center.X-((bntTimeEtrySave.Bounds.Size.Width)/2),
bntTimeEtrySave.Frame.Y,bntTimeEtrySave.Bounds.Size.Width,
bntTimeEtrySave.Bounds.Size.Height);
Chào mừng bạn đến với StackOverflow! Các câu trả lời chỉ có mã [được khuyến khích] (http://meta.stackexchange.com/a/148274/230241); vui lòng chỉnh sửa câu trả lời của bạn để bao gồm ít nhất một số giải thích về lý do tại sao nó hoạt động. – ravron
Dưới đây là nhiều cách tiếp cận đơn giản:
yourButton.center = self.view.center;
Đây là câu trả lời đúng! Sử dụng center.x hoặc center.y để biết chi tiết cụ thể trong x hoặc y nếu cần! –
cách bạn thực hiện thay đổi hướng hỗ trợ này? :( –
nhờ làm việc hoàn hảo quá – DavidNg
này dường như làm việc tốt cho chân dung nhưng không phải cho cảnh quan, am i làm sai điều gì? – Rob85