Tôi đang cố gắng phát triển một ứng dụng có UIPicker ở chế độ ngang, chiếm (gần) toàn bộ chiều rộng của màn hình (với 5 hoặc 6 thành phần). Bạn có thể vui lòng cho tôi biết cách đặt kích thước của UIPicker không. Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn.Kích thước UIPicker ở chế độ ngang
Trả lời
Bạn không thể. Kích thước của UIPickerView là không đổi.
CẬP NHẬT: Hóa ra bạn có thể đổi kích thước một UIPickerView. Bí quyết là đặt nó bên trong một UIView khác (nhỏ hơn) và thay đổi kích thước khung nhìn đó. Tôi chưa thử cái này.
CẬP NHẬT 2: Phương pháp này không thay đổi kích thước UIPickerView, mà đúng hơn là cắt bớt nó. Nó có thể hoặc có thể không phải là những gì bạn đang tìm kiếm, nhưng AFAIK, không có cách nào để thực sự thay đổi kích thước một UIPickerView, và điều này là gần như nó được. Nó không giống rằng không hợp lệ.
CẬP NHẬT 3 (Dài quá hạn): Kể từ SDK 3.0, UIPickerView hoàn toàn có thể định lại bằng cách sử dụng initWithFrame hoặc setFrame.
Tôi khá chắc chắn rằng UIPicker có một kích thước mà bạn không thể thay đổi. Sẽ được quan tâm để nghe khác nhau.
Bạn có thể chỉnh sửa kích thước bằng cách mở tệp .xib trong TextEdit và thay đổi kích thước của UIPickerView.
Thực ra, tôi đổi kích thước bộ chọn của mình cho hầu như mọi ứng dụng. Tôi không thích rằng họ chiếm toàn bộ màn hình. Đây là phương pháp mà tôi đang sử dụng: (lưu ý rằng tôi cũng đang xoay chọn là ngang)
trong viewDidLoad .....
picker = [[UIPickerView alloc] initWithFrame:CGRectZero];
picker.delegate = self;
picker.dataSource = self;
picker.showsSelectionIndicator = NO;
//Resize the picker, rotate it so that it is horizontal and set its position
CGAffineTransform rotate = CGAffineTransformMakeRotation(-1.57);
rotate = CGAffineTransformScale(rotate, .46, 2.25);
CGAffineTransform t0 = CGAffineTransformMakeTranslation(3, 22.5);
picker.transform = CGAffineTransformConcat(rotate,t0);
[self.view addSubview:picker];
[picker release];
Sau đó, tôi muốn thêm một hình nền cho quan điểm của tôi bao gồm lên thanh màu xám (mà bây giờ đang ở trên đỉnh và đáy) của UIPicker:
//Create the overlay to superimpose ontop of the picker
//In this case, the image is the size of the screen with a transparent area the size of the //UIPickerView cut out in the middle
UIImageView *uiiv = [[UIImageView alloc]
initWithImage:[UIImage imageNamed:@"problem_bg.png"]];
uiiv.userInteractionEnabled = NO;
uiiv.opaque = YES; //for performance
[self.view addSubview:uiiv];
[uiiv release];
UIPickerView phương pháp đại biểu:
-(UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)rowforComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *viewForRow = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 280)] autorelease];
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myimage.png"]];
img.frame = CGRectMake(0, 0, 102,280);
img.opaque = YES;
[viewForRow addSubview:img];
[img release];
UILabel *label;
UIFont *font = [ UIFont fontWithName:@"Helvetica" size:20];
label = [[[UILabel alloc] initWithFrame:CGRectMake(10, 20, 270, 100)] autorelease];
label.text = @"I am a label";
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.font = font;
label.backgroundColor = [UIColor clearColor];
label.opaque = NO;
[viewForRow addSubview:label];
CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57);
[viewForRow setTransform:rotate];
return viewForRow;
}
Điều này mang lại một bộ chọn ngang nhỏ hơn nhiều với giao diện đẹp mắt. Tôi hi vọng điêu nay se giup được ai đo.
Không có vấn đề gì (Tôi vừa đăng ký). Nhân tiện, tôi mới nhận ra rằng khi tôi đăng câu trả lời của mình, phương pháp (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent ....
mất không gian giữa hàng và forComponent. Vì vậy, hãy chắc chắn rằng bạn có đại biểu chính xác hoặc người nào khác nó sẽ không hoạt động.
Câu trả lời là ở:
-(UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
Kể từ với:
- (NSString*)pickerView:(UIPickerView*)pv titleForRow:(NSInteger)row forComponent:(NSInteger)component
Làm cho nó hoạt động (có nghĩa là: ngang với nhãn quy mô) tất nhiên
tôi vật lộn với vấn đề tương tự thay đổi kích thước của pickerview. Sau khi một số nghiên cứu và đau đầu ở đây là điều bạn có thể dễ dàng làm:
- Quên trình tạo giao diện!Tôi nghĩ bạn có thể có giao diện người dùng tốt hơn rất nhiều mà không cần trình tạo giao diện.
Trong bộ điều khiển ghi đè phương thức chế độ xem tải.
-(void)loadView { //create your view self.view = [[UIView alloc] initWithFrame:CGRectZero]; // create a default sized pickerView pickerView = [[UIPickerView alloc] initWithFrame:CGRectZero]; pickerView.delegate = self; pickerView.dataSource = self; pickerView.showsSelectionIndicator = YES; // Get its frame CGRect pickerFrame = pickerView.frame; // Set it to what ever you like, I use a default screen height times a shrink factor like 0.75 for 3/4 of its original size pickerFrame.size.width = screenWidth*pickerShrinkFactor; pickerFrame.size.height = pickerHeight*pickerShrinkFactor; // You can also set the upper left corner of the picker pickerFrame.origin.x = 0; // Set the picker frame to new size and origin pickerView.frame = pickerFrame; // Add it to your view [self.view addSubview:pickerView]; }
Chúc may mắn
- 1. UIView có kích thước chân dung trong khi ở chế độ ngang?
- 2. UIDeviceOrientationKhông biết ở chế độ ngang
- 3. AutoCompleteTextView gợi ý ở chế độ ngang
- 4. Bàn phím mở ở chế độ toàn màn hình ở chế độ ngang
- 5. Chế độ xem trang web tự động đổi kích thước thành chế độ xem dọc và ngang trong iphone
- 6. Đặt bảng excel ở chế độ ngang từ XLWT
- 7. splash (hình ảnh khởi chạy) ở chế độ ngang?
- 8. YotubePlayerHỗ trợFragment xem toàn màn hình ở chế độ ngang
- 9. Ứng dụng iOS bắt đầu ở chế độ ngang
- 10. Nền tùy chỉnh cho UINavigationBar ở chế độ ngang
- 11. camera Android được kéo dài ở chế độ ngang
- 12. Buộc ứng dụng iOS khởi chạy ở chế độ ngang
- 13. Bộ điều khiển chế độ xem sẽ không bắt đầu ở chế độ ngang
- 14. Tiền tố kích thước vận hành ở chế độ 16 bit
- 15. Tại sao kích thước nền CSS: bìa không hoạt động ở chế độ dọc trên iOS?
- 16. Vấn đề đổi kích thước màn hình của Phonegap/HTML5 và Android xoay từ chế độ ngang sang chân dung
- 17. vấn đề chế độ ngang với thanh điều hướng
- 18. Nhận kích thước thực tế của chế độ xem iOS
- 19. Bố cục chế độ xem sau khi đổi kích thước
- 20. Làm cách nào để hạn chế ứng dụng của tôi ở chế độ ngang?
- 21. Đặt hướng ở chế độ ngang trong android ở cả hai bên
- 22. Iphone: Xem kích thước hoặc kích thước màn hình hiện tại
- 23. Bảo quản chế độ xem chia nhỏ có kích thước bằng nhau
- 24. Chế độ xem lưới Android Cuộn ngang
- 25. Toàn màn hình: AVPlayerLayer không được thay đổi kích thước khi thay đổi kích thước chế độ xem gốc
- 26. Làm cách nào để giảm kích thước phông chữ của chế độ-thanh/dòng?
- 27. Độ phức tạp của kích thước() đối với chế độ xem phần TreeSet trong Java
- 28. Thay đổi kích thước chế độ xem trên iPhone khi xoay
- 29. Cách thay đổi kích thước chế độ xem bằng bố cục tự động của Xcode
- 30. PhoneGap: Có cách nào để ngăn bàn phím đổi kích thước chế độ xem không?
Nó đã giúp tôi, nhờ một triệu – qui