Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีปิดการเลื่อน (Scroll) ใน WebView บน iOS โดยโปรแกรม

ปิดการเลื่อนหน้าเว็บใน WebView (UIWebView / WKWebView)

วิธีง่ายที่สุดคือปิด property isScrollEnabled ของ ScrollView ภายใน WebView

โค้ดสั้นๆ (One-liner)

webView.scrollView.isScrollEnabled = false

ตัวอย่างเต็มรูปแบบ: สร้างโปรเจกต์ทดสอบ

ขั้นตอนที่ 1: สร้างโปรเจกต์

Xcode → Single View App → ชื่อ "WebViewScrollDisabling"

ขั้นตอนที่ 2: เพิ่ม UIWebView ใน Storyboard

ลาก UIWebView (หรือ WKWebView สำหรับ iOS 8+) มาเต็มหน้าจอ

ขั้นตอนที่ 3: สร้าง IBOutlet

@IBOutlet weak var webView: UIWebView!

ขั้นตอนที่ 4: โหลดเว็บไซต์ใน viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    let url = URL(string: "https://www.tutorialspoint.com/index.htm")!
    webView.loadRequest(URLRequest(url: url))
    
    // ปิดการเลื่อน
    webView.scrollView.isScrollEnabled = false
}

ขั้นตอนที่ 5: ทดสอบ

  • รันครั้งแรกโดยไม่ปิด scroll → เลื่อนได้ปกติ
  • เพิ่มบรรทัด webView.scrollView.isScrollEnabled = false → ไม่สามารถเลื่อนได้

หมายเหตุสำคัญ

  • UIWebView deprecated แล้ว ควรใช้ WKWebView แทน (โค้ดเหมือนกัน: wkWebView.scrollView.isScrollEnabled = false)
  • หากต้องการปิด scroll เฉพาะแนวตั้ง/แนวนอน ใช้ scrollView.alwaysBounceVertical = false หรือ alwaysBounceHorizontal
  • บน iOS 11+ อาจต้องตั้ง scrollView.contentInsetAdjustmentBehavior = .never ด้วยในบางกรณี