Tôi muốn tạo UIBarButtonItem bằng một hình ảnh tùy chỉnh, nhưng tôi không muốn viền mà iPhone thêm vào, vì Hình ảnh của tôi có đường viền đặc biệt.UIBarButtonItem với hình ảnh tùy chỉnh và không có đường viền
Cũng giống như nút quay lại nhưng nút chuyển tiếp.
App này là dành cho một dự án trong nhà, vì vậy tôi không quan tâm nếu Apple từ chối hoặc chấp thuận hay thích nó :-)
Nếu tôi sử dụng initWithCustomView: tài sản v của UIBarButtonItem, tôi có thể làm điều đó :
UIImage *image = [UIImage imageNamed:@"right.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
[button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateHighlighted];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button addTarget:self action:@selector(AcceptData) forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[v addSubview:button];
UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];
self.navigationItem.rightBarButtonItem= forward;
[v release];
[image release];
Công trình này, nhưng nếu tôi phải lặp lại quy trình này trong 10 chế độ xem, điều này không phải là KHÔ.
Tôi cho rằng tôi phải phân lớp, nhưng cái gì?
- NSView?
- UIBarButtonItem?
cảm ơn,
regards,
Cám ơn chia sẻ mã của bạn, đó là tất cả tôi cần :). – Max
Mọi người, tôi đã sử dụng câu trả lời được cung cấp bởi San vào ngày 6 tháng Hai. Phải mất tất cả 5 phút để tích hợp vào Bảng phân cảnh của tôi và nó hoạt động hoàn hảo. Thuộc tính Selector thuộc Bộ kiểm tra kết nối của IB. Điều khiển kéo từ UIButton đến đối tượng ViewController và các phương thức sẽ bật lên. Nhấn vào phương thức bạn muốn và bạn thực hiện khá nhiều. Điều duy nhất còn lại sẽ là dọn dẹp mã. Được sử dụng btnXXXXX.hidden để ẩn và bỏ ẩn để thay thế barbuttonitem = nil. Nhưng phương pháp này rất dễ dàng và rất sạch sẽ. – user589642