2011-01-19 30 views
11

Có vẻ như tôi luôn chiến đấu với UIAlertView để làm cho nó làm những gì tôi muốn. Tôi đang thực hiện xong chiến đấu - được có bất kỳ thay thế UIAlertView mạnh mẽ với các tính năng sau, hoặc tôi sẽ cần phải viết riêng ?:Thay thế UIAlertView

  • khả năng của mình để tùy chỉnh cảnh báo xem kích thước/vị trí
  • khả năng thay đổi bố trí của nút (xếp chồng lên nhau so với side-by-side)
  • khả năng nhắc nhở người dùng cho đầu vào thông qua UITextField hoặc UITextView
  • thay đổi kích thước/tái định vị các hành vi khi bàn phím xuất hiện
  • khả năng để có một UITextView cho 0.123.di chuyển văn bản
  • pixel hoàn hảo bản sao của UIAlertView cho hiển thị cơ bản
  • lý tưởng giao diện tương thích với UIAlertView - tức là nó là một thả trong thay thế.

Tôi đã tìm thấy một vài bài đăng trên blog và stackoverflow triển khai các tùy chỉnh trên UIAlertView - đây không phải là những gì tôi muốn. Tôi cũng không muốn hướng dẫn về cách triển khai AlertView tùy chỉnh - Tôi biết cách, tôi chỉ muốn tìm một tài liệu đã được duy trì trong cộng đồng. Tôi muốn một sự thay thế mặt đất an toàn cho việc gửi App Store và tương lai chống lại các thay đổi của UIAlertView (vâng, tôi đã bị cháy ...)

Vui lòng trả lời với ý kiến ​​nếu bạn có gợi ý cho các tính năng mong muốn khác.

+0

@skaffman - làm cách nào bạn xóa thẻ iphone-ui? – TomSwift

+3

Có lẽ vì nó không thực sự là một thẻ được sử dụng ở tất cả (0 câu hỏi) và vì vậy nó sẽ không thêm bất cứ điều gì? –

Trả lời

17

Trả lời câu hỏi của riêng tôi.

Tôi đã tìm kiếm cao và thấp cho dự án UIAlertView prefab cung cấp các tính năng tôi đang tìm kiếm. Tôi chắc chắn rằng họ tồn tại - Tôi đã thấy các ứng dụng có cảnh báo tuyệt vời. Tác giả của họ không được chia sẻ - điều đó hoàn toàn ổn, tôi hiểu.

Vì vậy, tôi đã viết của riêng mình. TSAlertView là một triển khai nền tảng của chế độ xem cảnh báo phương thức tương thích với giao diện với UIAlertView. Xét về mặt thị giác, trong khi nó không phải là một bản sao hoàn hảo, nó đến rất gần. Các tính năng mà nó cung cấp về cơ bản là những gì tôi đã nêu trong câu hỏi gốc:

  • khả năng đặt chiều rộng màn hình và chiều cao tối đa của chế độ xem cảnh báo. Điều này cho phép tôi có cảnh báo đẹp hơn trên iPad.

  • khả năng chỉ định bố cục của các nút (xếp chồng lên nhau so với song song), ngay cả khi chỉ có hai nút. Điều này luôn làm phiền tôi với UIAlertView - nếu tôi có hai nút, chúng luôn được đặt cạnh nhau. Một vấn đề lớn nếu văn bản nút không phù hợp.

  • khả năng nhắc người dùng nhập thông qua UITextField. Đôi khi bạn chỉ cần một cách nhanh chóng và dơ bẩn để nhắc người dùng nhập nội dung nào đó.

  • thay đổi kích thước/định vị lại hành vi khi bàn phím xuất hiện. (xảy ra khi nhắc người dùng nhập)

  • khả năng có UITextView để cuộn văn bản.Có thể thiết lập rõ ràng tùy chọn này thay vì dựa vào UIAlertView để trao đổi trong một UITextView cho văn bản dài.

  • gần bản sao hoàn hảo pixel của UIAlertView để hiển thị cơ bản.

  • hỗ trợ cho nền tùy chỉnh

  • là giao diện tương thích với UIAlertView - tức là nó là một thả trong thay thế.

Tôi đã sử dụng một số lượng lớn các dự án nguồn mở tuyệt vời trong mã của tôi trong năm qua. Hai mục yêu thích của tôi là MBProgressHUDMGSplitViewController, mỗi mục được lưu trữ tại github. Tôi quyết định chia sẻ TSAlertView theo cách tương tự.

https://github.com/TomSwift/TSAlertView

Việc triển khai ban đầu chắc chắn có một số lỗi. Tôi đã không sử dụng nó trong một dự án vận chuyển, nhưng tôi đang sử dụng nó trong dự án hiện tại của tôi sẽ được hoàn thành trong một vài tuần. Nếu bạn muốn thử sử dụng nó cho mình, xin vui lòng cảm thấy tự do. Đăng bất kỳ vấn đề nào về github, hoặc tốt hơn, hãy gửi bản sửa lỗi.

Tận hưởng!

Dưới đây là một số ảnh chụp màn hình cho thấy 1) 2 xếp chồng lên nhau nút 2) khả năng đầu vào 3) chiều rộng rõ ràng thiết

showing 2 stacked buttons hereshowing input capabilityshowing wide-layout

+1

Hey TomSwift, Cảm ơn bạn vì dự án tuyệt vời đó. Tôi sắp bắt đầu một dự án như vậy cho đến khi tôi đến TSAlertView của bạn. Thật tuyệt. Tôi hiện đang sử dụng nó trong một trong các ứng dụng của tôi. ;-) –

+0

Điều này thật tuyệt vời. Cảm ơn bạn về sự thay thế nguồn mở tuyệt vời và dễ sử dụng cho những thứ khó hơn cần thiết trong iOS. – buildsucceeded

0

Kiểm tra Smart Alert View, đó là mã nguồn mở.

+0

cảm ơn vì liên kết. Tôi đã sợ hãi của điều này khi tôi quét mã và thấy điều này: - (void) ResizeAlertView: (UIAlertView *) alertView { \t CGFloat height = view_.frame.size.height + 110; \t \t alertView.frame = CGRectMake (15.0f, (460-height)/2, 300.0f, chiều cao); } – TomSwift

+0

cũng được, sở thích của tôi là dành cho thứ không có nguồn gốc từ UIAlertView. – TomSwift

+0

Bạn sẽ phải xây dựng triển khai UIAlertView của riêng mình (điều này có nghĩa là một cơn ác mộng hơn là tùy chỉnh một cái), hoặc chỉ tùy chỉnh một cái, nó không khó như bạn mong đợi. – WrightsCS