หลังจากการคำนวณฉันต้องการแสดงกล่องป๊อปอัพหรือแจ้งเตือนข้อความที่ส่งถึงผู้ใช้ ไม่มีใครรู้ว่าฉันสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ไหน?
หลังจากการคำนวณฉันต้องการแสดงกล่องป๊อปอัพหรือแจ้งเตือนข้อความที่ส่งถึงผู้ใช้ ไม่มีใครรู้ว่าฉันสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ไหน?
คำตอบ:
ใช่ a UIAlertView
อาจเป็นสิ่งที่คุณกำลังมองหา นี่คือตัวอย่าง:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection"
message:@"You must be connected to the internet to use this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
หากคุณต้องการทำอะไรที่แฟนซีมากกว่านั้นให้พูดแสดง UI ที่กำหนดเองในของUIAlertView
คุณคุณสามารถ subclass UIAlertView
และใส่องค์ประกอบ UI ที่กำหนดเองในinit
วิธีการ หากคุณต้องการที่จะตอบสนองต่อการกดปุ่มหลังจากที่UIAlertView
ปรากฏขึ้นคุณสามารถตั้งค่าdelegate
ข้างต้นและใช้- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
วิธีการ
UIActionSheet
นอกจากนี้คุณยังอาจต้องการที่จะมองไปที่
คนต่าง ๆ ที่มาที่คำถามนี้หมายถึงสิ่งที่แตกต่างกันโดยกล่องป๊อปอัพ ฉันขอแนะนำให้อ่านเอกสารมุมมองชั่วคราว คำตอบของฉันส่วนใหญ่เป็นบทสรุปของเอกสารนี้และเอกสารอื่น ๆ ที่เกี่ยวข้อง
การแจ้งเตือนแสดงชื่อเรื่องและข้อความเพิ่มเติม ผู้ใช้ต้องรับทราบ (การแจ้งเตือนด้วยปุ่มเดียว) หรือทำการเลือกอย่างง่าย (การแจ้งเตือนแบบสองปุ่ม) ก่อนดำเนินการ คุณสร้างการแจ้งเตือนด้วยUIAlertController
คุณสามารถสร้างการแจ้งเตือนด้วย
เป็นมูลค่าการอ้างอิงคำเตือนของเอกสารและคำแนะนำเกี่ยวกับการสร้างการแจ้งเตือนที่ไม่จำเป็น
หมายเหตุ:
UIAlertView
นั้นเลิกใช้แล้ว คุณควรใช้UIAlertController
เพื่อสร้างการแจ้งเตือนทันทีเอกสารการดำเนินการให้ผู้ใช้รายการตัวเลือก โดยจะปรากฏที่ด้านล่างของหน้าจอหรือในป๊อปโอเวอร์ขึ้นอยู่กับขนาดและทิศทางของอุปกรณ์ เช่นเดียวกับการแจ้งเตือน a UIAlertController
ใช้สำหรับสร้างแผ่นงาน ก่อนที่จะใช้ iOS 8 UIActionSheet
แต่ตอนนี้เอกสารบอกว่า:
สำคัญ:
UIActionSheet
จะเลิกใน iOS 8. (หมายเหตุว่าUIActionSheetDelegate
ยังจะเลิก.) เพื่อสร้างและจัดการแผ่นการดำเนินการใน iOS 8 และต่อมาแทนที่จะใช้UIAlertController
กับของpreferredStyle
UIAlertControllerStyleActionSheet
มุมมองกิริยาเป็นมุมมองที่ตนเองมีที่มีทุกสิ่งที่จะต้องทำงานให้เสร็จสมบูรณ์ อาจหรือไม่อาจใช้แบบเต็มหน้าจอ เพื่อสร้างมุมมองกิริยาใช้UIPresentationController
กับหนึ่งในรูปแบบการนำเสนอ Modal
ดูสิ่งนี้ด้วย
popoverคือมุมมองที่ปรากฏขึ้นเมื่อก๊อกผู้ใช้ในบางสิ่งบางอย่างและจะหายไปเมื่อแตะปิดมัน มันมีลูกศรแสดงการควบคุมหรือตำแหน่งจากการแตะ เนื้อหาสามารถเป็นอะไรก็ได้ที่คุณสามารถใส่ใน View Controller คุณทำให้ popover UIPopoverPresentationController
กับที่ (ก่อน iOS 8UIPopoverController
เป็นวิธีที่แนะนำ)
ในอดีตที่ผ่านมา popovers ใช้ได้เฉพาะบน iPad แต่เริ่มต้นกับ iOS 8 คุณยังสามารถได้รับพวกเขาบน iPhone (ดูที่นี่ , ที่นี่และที่นี่ )
ดูสิ่งนี้ด้วย
การแจ้งเตือนคือเสียง / การสั่นสะเทือนการแจ้งเตือน / แบนเนอร์หรือป้ายที่แจ้งให้ผู้ใช้ทราบถึงบางสิ่งแม้ว่าแอพจะไม่ทำงานในเบื้องหน้า
ดูสิ่งนี้ด้วย
ใน Android Toastเป็นข้อความสั้น ๆ ที่ปรากฏบนหน้าจอเป็นระยะเวลาสั้น ๆ จากนั้นจะหายไปโดยอัตโนมัติโดยไม่รบกวนการโต้ตอบของผู้ใช้กับแอพ
ผู้ที่มาจากพื้นหลังของ Android ต้องการทราบว่าเวอร์ชันของ iOS คืออะไร ตัวอย่างบางส่วนของคำถามเหล่านี้เขาสามารถพบได้ที่นี่ , ที่นี่ , ที่นี่และที่นี่ คำตอบก็คือไม่มีเทียบเท่ากับขนมปังปิ้งใน iOS วิธีแก้ปัญหาต่าง ๆ ที่มีการนำเสนอรวมถึง:
UIView
อย่างไรก็ตามคำแนะนำของฉันคือติดกับตัวเลือก UI มาตรฐานที่มาพร้อมกับ iOS แล้ว อย่าพยายามทำให้แอปของคุณดูและประพฤติตนเหมือนกับเวอร์ชั่น Android คิดเกี่ยวกับวิธีการบรรจุหีบห่อใหม่เพื่อให้มีลักษณะและความรู้สึกเหมือนแอพ iOS
ตั้งแต่การเปิดตัว iOS 8 UIAlertView
ตอนนี้เลิกใช้แล้ว UIAlertControllerเป็นการแทนที่
นี่คือตัวอย่างของลักษณะใน Swift:
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
อย่างที่คุณเห็น API ช่วยให้เราสามารถใช้การเรียกกลับสำหรับทั้งการกระทำและเมื่อเราแสดงการแจ้งเตือนซึ่งมีประโยชน์มาก!
อัปเดตสำหรับ Swift 4.2
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
อัปเดตสำหรับ iOS 8.0
ตั้งแต่ iOS 8.0 คุณจะต้องใช้ UIAlertController ดังนี้:
-(void)alertMessage:(NSString*)message
{
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Alert"
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction
actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
ที่ตัวเองในตัวอย่างของฉันเป็น UIViewController ซึ่งใช้วิธี "presentViewController" สำหรับป๊อปอัพ
เดวิด
สำหรับ Swift 3 และ Swift 4:
เนื่องจาก UIAlertView เลิกใช้แล้วมีวิธีที่ดีสำหรับการแสดงการแจ้งเตือนบน Swift 3
let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title: NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
//Do whatever you want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
เลิกใช้แล้ว:
นี่เป็นเวอร์ชั่นที่รวดเร็วซึ่งได้รับแรงบันดาลใจจากคำตอบที่เลือก:
แสดง AlertView:
let alert = UIAlertView(title: "No network connection",
message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
alert.delegate = self
alert.show()
เพิ่มผู้รับมอบสิทธิ์ไปยังตัวควบคุมมุมมองของคุณ:
class AgendaViewController: UIViewController, UIAlertViewDelegate
เมื่อผู้ใช้คลิกที่ปุ่มรหัสนี้จะถูกดำเนินการ:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
แม้ว่าฉันจะเขียนภาพรวมของป๊อปอัปประเภทต่าง ๆ แล้ว แต่คนส่วนใหญ่ก็ต้องการการแจ้งเตือน
class ViewController: UIViewController {
@IBAction func showAlertButtonTapped(_ sender: UIButton) {
// create the alert
let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}
นี่คือเวอร์ชั่น C # ใน Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();