แถบสถานะและแถบการนำทางปรากฏเหนือขอบเขตมุมมองของฉันใน iOS 7


435

ฉันเพิ่งดาวน์โหลดXcode 5 DP เพื่อทดสอบแอพของฉันใน iOS 7 สิ่งแรกที่ฉันสังเกตเห็นและยืนยันคือขอบเขตของมุมมองของฉันไม่ได้ถูกปรับขนาดเสมอไปสำหรับบัญชีสำหรับแถบสถานะและแถบนำทาง

ในviewDidLayoutSubviewsฉันพิมพ์ขอบเขตของมุมมอง:

{{0, 0}, {320, 568}}

ผลลัพธ์ในเนื้อหาของฉันปรากฏใต้แถบนำทางและแถบสถานะ

ฉันรู้ว่าฉันสามารถอธิบายความสูงได้ด้วยการรับความสูงของหน้าจอหลักการลบความสูงของแถบสถานะและความสูงของแถบการนำทาง แต่ดูเหมือนว่างานพิเศษที่ไม่จำเป็น

ฉันจะแก้ไขปัญหานี้ได้อย่างไร

ปรับปรุง:

ฉันพบวิธีแก้ไขปัญหานี้แล้ว ตั้งค่าคุณสมบัติโปร่งแสงของแถบนำทางเป็น NO:

self.navigationController.navigationBar.translucent = NO;

การทำเช่นนี้จะแก้ไขมุมมองจากการถูกวางกรอบไว้ใต้แถบนำทางและแถบสถานะ

อย่างไรก็ตามฉันไม่พบวิธีแก้ไขสำหรับเคสเมื่อคุณต้องการให้แถบนำทางโปร่งแสง ตัวอย่างเช่นการดูภาพถ่ายแบบเต็มหน้าจอฉันต้องการให้แถบนำทางโปร่งแสงและมุมมองที่จะถูกวางไว้ด้านล่าง ใช้งานได้ แต่เมื่อฉันสลับการแสดง / ซ่อนแถบการนำทางฉันได้พบกับผลลัพธ์ที่แปลก มุมมองย่อยแรก (UIScrollView) ทำให้ขอบเขตกำเนิด y เปลี่ยนไปทุกครั้ง


ฉันยังได้รับปัญหาเดียวกันใน xcode 5 DP
Gopesh Gupta

แจ้งให้เราทราบหากคุณจะได้รับวิธีแก้ปัญหา
Gopesh Gupta

1
ดูในแถบการนำทางเพื่อดูคุณสมบัติสีอ่อนคุณควรจะสามารถเปลี่ยนสีฟ้านั้นเป็นสิ่งที่คุณต้องการ
beebcon

9
บางครั้งฉันเกลียดการอัปเกรด iOS เพราะ Apple ไม่เคยให้โอกาสคุณในการทำให้แอปของคุณทำงานร่วมกันได้
Bagusflyer

3
หากปัญหาเกี่ยวข้องกับมุมมองที่อยู่ภายใต้แถบสถานะหลังจากซ่อนแถบด้านบนของตัวควบคุมการนำทางฉันจะอ้างถึงคำตอบโดย @Stunner stackoverflow.com/a/18976660/235206เป็นวิธีแก้ปัญหา
MiKL

คำตอบ:


495

คุณสามารถทำได้โดยใช้คุณสมบัติใหม่ที่เรียกว่าedgesForExtendedLayoutใน iOS7 SDK กรุณาเพิ่มรหัสต่อไปนี้เพื่อให้บรรลุนี้

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

คุณต้องเพิ่มข้างต้นใน-(void)viewDidLoadวิธีการของคุณ

iOS 7 นำการเปลี่ยนแปลงหลายวิธีที่คุณจัดวางและปรับแต่งรูปลักษณ์ของคุณUI การเปลี่ยนแปลงในเค้าโครงตัวควบคุมมุมมองสีอ่อนและแบบอักษรส่งผลกระทบต่อวัตถุUIKitทั้งหมดในแอปของคุณ นอกจากนี้การปรับปรุงการจดจำลายนิ้วมือ API ช่วยให้คุณควบคุมการโต้ตอบด้วยท่าทางได้ดียิ่งขึ้น

ใช้ตัวควบคุมมุมมอง

ใน iOS 7 ตัวควบคุมมุมมองใช้เค้าโครงแบบเต็มหน้าจอ ในขณะเดียวกัน iOS 7 ยังให้การควบคุมที่ละเอียดยิ่งขึ้นแก่คุณเกี่ยวกับวิธีการที่ตัวควบคุมมุมมองแสดงมุมมอง โดยเฉพาะอย่างยิ่งแนวคิดของเค้าโครงแบบเต็มหน้าจอได้รับการขัดเกลาเพื่อให้ตัวควบคุมมุมมองระบุเค้าโครงของแต่ละมุมมอง

wantsFullScreenLayoutคุณสมบัติมุมมองควบคุมจะเลิกใน iOS 7 ถ้าคุณกำลังระบุwantsFullScreenLayout = NOควบคุมมุมมองอาจแสดงเนื้อหาที่สถานที่หน้าจอที่ไม่คาดคิดเมื่อมันทำงานใน iOS 7

ในการปรับวิธีการที่ตัวควบคุมมุมมองแสดงมุมมองUIViewController ให้แสดงคุณสมบัติต่อไปนี้:

  • edgesForExtendedLayout

edgesForExtendedLayoutคุณสมบัติใช้UIRectEdgeประเภทซึ่งระบุแต่ละสี่เหลี่ยมของสี่ขอบนอกเหนือไปจากที่ระบุไม่มีและทุก ใช้edgesForExtendedLayoutเพื่อระบุขอบของมุมมองที่ควรขยายโดยไม่คำนึงถึงแถบการแปลผ่าน UIRectEdgeAllโดยค่าเริ่มต้นค่าของคุณสมบัตินี้คือ

  • extendedLayoutIncludesOpaqueBars

หากการออกแบบของคุณใช้แถบสีขาวขุ่นสินค้าedgesForExtendedLayoutโดยยังตั้งค่าextendedLayoutIncludesOpaqueBarsคุณสมบัติการ NO (ค่าเริ่มต้นextendedLayoutIncludesOpaqueBarsคือNO )

  • automaticallyAdjustsScrollViewInsets

หากคุณไม่ต้องการขุ่นเนื้อหามุมมองเลื่อนที่จะถูกปรับโดยอัตโนมัติชุดautomaticallyAdjustsScrollViewInsetsที่จะไม่มี (ค่าเริ่มต้นautomaticallyAdjustsScrollViewInsetsคือYES )

  • topLayoutGuide, bottomLayoutGuide

topLayoutGuideและbottomLayoutGuideคุณสมบัติบ่งบอกถึงสถานที่ตั้งของบนหรือด้านล่างขอบบาร์ในมุมมองของตัวควบคุมมุมมองของ หากแถบควรซ้อนทับด้านบนหรือด้านล่างของมุมมองคุณสามารถใช้ตัวสร้างส่วนต่อประสานเพื่อจัดตำแหน่งมุมมองที่สัมพันธ์กับแถบโดยการสร้างข้อ จำกัด ด้านล่างtopLayoutGuideหรือด้านบนสุดของด้านล่าง LayoutGuide (หากไม่มีแถบควรซ้อนทับมุมมองด้านล่างของ topLayoutGuideจะเหมือนกับด้านบนของมุมมองและด้านบนของ bottomLayoutGuideเป็นเหมือนด้านล่างของมุมมอง) คุณสมบัติทั้งสองถูกสร้างขึ้นอย่างขี้เกียจเมื่อมีการร้องขอ

โปรดอ้างอิงapple doc


2
มันจะไม่รวบรวมใน iOS6 ฉันคิดว่ามันควรจะเขียนเป็นตัวเลือก ...
Shmidt

8
ใช่นั่นคือเหตุผลที่ฉันได้รวมการตรวจสอบตัวเลือกด้วยหากเงื่อนไข (([การตอบสนองด้วยตนเองไปที่ SelectS @ @ selector (edgeForExtendedLayout)))
Nandha

19
สิ่งนี้จะไม่ทำงานหากฉันไม่มีแถบนำทาง ในกรณีนี้มุมมองของฉันจะขยายออกไปด้านหลังแถบสถานะ ..
Van Du Tran

4
ฉันมีปัญหาเช่นเดียวกับ @VanDuTran edgesForExtendedLayout ไม่ได้ช่วยหากแถบการนำทางถูกซ่อนอยู่
fishinear

6
มันใช้งานได้ แต่ ... ไม่มีเอฟเฟกต์โปร่งแสงอีกต่อไป ... เราจะรักษาเอฟเฟกต์โปร่งแสงได้อย่างไร ...
Dipu Rajak

110

คุณไม่ต้องคำนวณว่าจะเลื่อนทุกอย่างไปไกลแค่ไหนมีคุณสมบัติในตัวสำหรับสิ่งนี้ ในตัวสร้างส่วนต่อประสานเน้นตัวควบคุมมุมมองของคุณแล้วไปที่ตัวตรวจสอบแอตทริบิวต์ ที่นี่คุณจะเห็นช่องทำเครื่องหมายถัดจากคำว่า "ขยายขอบ" อย่างที่คุณเห็นในหน้าจอแรกการเลือกเริ่มต้นสำหรับเนื้อหาที่จะปรากฏภายใต้แถบด้านบนและด้านล่าง แต่ไม่อยู่ภายใต้แถบทึบแสงซึ่งเป็นสาเหตุที่ทำให้การตั้งค่าลักษณะแถบไม่โปร่งแสงสำหรับคุณ

อย่างที่คุณเห็นในภาพหน้าจอแรกมีองค์ประกอบ UI สองอย่างที่ซ่อนอยู่ใต้แถบนำทาง (ฉันเปิดใช้งาน wireframes ใน IB เพื่ออธิบายสิ่งนี้) องค์ประกอบเหล่านี้ UIButton และ UISegmentedControl ทั้งคู่มีจุดเริ่มต้น "y" เป็นศูนย์และตัวควบคุมมุมมองถูกตั้งค่าให้อนุญาตเนื้อหาด้านล่างแถบด้านบน

ป้อนคำอธิบายรูปภาพที่นี่

ภาพหน้าจอที่สองนี้แสดงสิ่งที่เกิดขึ้นเมื่อคุณยกเลิกการเลือกช่องทำเครื่องหมาย "ภายใต้แถบด้านบน" อย่างที่คุณเห็นมุมมองตัวควบคุมมุมมองถูกเลื่อนลงอย่างเหมาะสมเพื่อให้จุดเริ่มต้น y อยู่ด้านล่างแถบนำทาง

ป้อนคำอธิบายรูปภาพที่นี่

-[UIViewController edgesForExtendedLayout]นอกจากนี้ยังสามารถทำได้ผ่านการใช้โปรแกรมของ นี่คือลิงค์ไปยังการอ้างอิงคลาสสำหรับedgeForExtendedLayoutและสำหรับUIRectEdge

[self setEdgesForExtendedLayout:UIRectEdgeNone];

15
ฉันจะทำเช่นเดียวกันสำหรับเพียงแค่ดูใน. xib ได้อย่างไร
Bobics

2
ฉันเพิ่มหนึ่งป้ายกำกับในมุมมองและฉันทำตามคำแนะนำของคุณ แต่นี่ไม่ได้ผลสำหรับฉัน
RMRAHUL

5
@bobics คำตอบสำหรับคำถาม XIB คือ "คุณทำไม่ได้" ไม่ผ่าน IB เลย ยื่นเรดาร์และหวังว่า Apple จะจัดการกับมันในที่สุด
memmons

ขอบคุณ @ 0x7fffffff นี่เป็นเพียงข้อมูลที่ฉันกำลังมองหาและมีประโยชน์มาก
campo

33

ฉันสร้างมุมมองของฉันแบบเป็นโปรแกรมและสิ่งนี้จบลงด้วยการทำงานสำหรับฉัน:

- (void) viewDidLayoutSubviews {
    // only works for iOS 7+
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
        CGRect viewBounds = self.view.bounds;
        CGFloat topBarOffset = self.topLayoutGuide.length;

        // snaps the view under the status bar (iOS 6 style)
        viewBounds.origin.y = topBarOffset * -1;

        // shrink the bounds of your view to compensate for the offset
        viewBounds.size.height = viewBounds.size.height + (topBarOffset * -1);
        self.view.bounds = viewBounds;
    }
}

แหล่งที่มา (ในส่วนTopLayoutGuideที่ด้านล่างของ pg.39)


ในที่สุดก็พบคำตอบที่ใช้งานได้จริงสำหรับเรื่องนี้ การทำงานที่ดี!
StuartM

1
ในการแก้ปัญหาโดยที่มุมมองของตัวควบคุมมุมมองปรากฏขึ้นภายใต้แถบสถานะเมื่อแถบการนำทางถูกซ่อนอยู่นี่คือรหัสที่ล็อคมุมมองภายใต้แถบสถานะ
MiKL

หมายเหตุ: สิ่งนี้จะผลักด้านล่างของมุมมองของคุณออกจากหน้าจอ
memmons

1
นอกจากนี้หากคุณกำลังสร้างสำหรับiOS7 เท่านั้นรหัสด้านบนจะแสดงข้อผิดพลาด - topLayoutGuideเป็น iOS7 เท่านั้น
memmons

1
นอกจากนี้โปรดทราบว่าเมื่อมุมมองหลักของคุณคือ UITableView viewDidLayoutSubviews จะได้รับการเรียกใช้ในแต่ละการเลื่อน UITableView ของคุณจะถูกลดขนาดลงจนความสูงเท่ากับ 15px เพิ่มการตั้งค่าสถานะเพื่อเรียกใช้รหัสนี้เพียงครั้งเดียว ;)
โธมัสโยฮันเนสเม

30

โซลูชัน Swift 3 / Swift 4 ที่ทำงานร่วมกับไฟล์ NIBs / XIB ใน iOS 10+:

override func viewDidLoad() {
    super.viewDidLoad()

    edgesForExtendedLayout = []
}

นี่คือสิ่งที่ช่วยฉัน ... ง่ายมาก ขอบคุณ :-)
Hernan Arber

ขอบคุณมันมีประโยชน์จริง ๆ
Muhammad Ahmed Baig

นี่เป็นทางออกที่ดีที่สุดสำหรับ 10.x Swift 3+ IMO
shokaveli

10

หากคุณต้องการให้มุมมองที่มีแถบนำทางโปร่งแสง (ซึ่งเป็นชนิดที่ดี) คุณต้องตั้งค่า contentInset หรือคล้ายกัน

นี่คือวิธีที่ฉันทำ:

// Check if we are running on ios7
if([[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."][0] intValue] >= 7) {
      CGRect statusBarViewRect = [[UIApplication sharedApplication] statusBarFrame];
      float heightPadding = statusBarViewRect.size.height+self.navigationController.navigationBar.frame.size.height;

      myContentView.contentInset = UIEdgeInsetsMake(heightPadding, 0.0, 0.0, 0.0);
}

3
ทำไมคุณไม่สามารถเปรียบเทียบโดยตรงกับ 7.0
Leena

1
ฉันเข้าใจแล้ว: การตรวจสอบกับเวอร์ชันเฉพาะที่มีการเพิ่มเล็กน้อยนั้นมีประสิทธิภาพน้อยกว่า แต่คุณกำลังตรวจสอบว่าค่านั้นใหญ่กว่าหรือเท่ากับดังนั้นเมื่อเปรียบเทียบกับ 7.0 จะทำได้ดีที่นี่;)
EeKay

1
@leena - นี่คือคุณลักษณะใน 7.x และใหม่กว่า - ดังนั้นฉันตรวจสอบว่ารุ่นเป็น 7 หรือมากกว่าและข้ามการแก้ไขเล็กน้อยในการตรวจสอบ
แมกนัส

2
ฉันมีปัญหากับ tableView beeing ของฉันแสดงอยู่ด้านหลัง Tabbar ของฉัน ซึ่งทำให้แถวสุดท้ายของตารางของฉันไม่เคยเลื่อนไปเหนือ Tabbar ฉันแก้ไขมันแบบนั้น: myTableView.contentInset = UIEdgeInsetsMake (0, 0.0, TabbarHeight, 0)
James Laurenstin

contentInsetUIScrollViewเป็นทรัพย์สินของ เกิดอะไรขึ้นถ้ามุมมองหลักของฉันไม่ได้เป็น subclass UIScrollViewของ แล้วฉันจะแก้ไขปัญหาการทับซ้อนได้อย่างไร
Pwner

9

edgesForExtendedLayoutทำเคล็ดลับสำหรับ iOS 7 ได้อย่างไรถ้าคุณสร้างแอปข้าม iOS 7 SDK และปรับใช้ใน iOS 6 แถบการนำทางจะปรากฏโปร่งแสงและมุมมองจะอยู่ด้านล่าง ดังนั้นเพื่อแก้ไขทั้ง iOS 7 และ iOS 6 ทำสิ่งนี้:

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;   // iOS 7 specific

9

ในปพลิเคชันของคุณไฟล์ plist เพิ่มแถวเรียกว่า "ดูตัวควบคุมตามแถบสถานะลักษณะ" และตั้งค่าให้NO


7

เคล็ดลับที่ง่ายที่สุดคือการเปิดไฟล์NIBและทำสองขั้นตอนง่าย ๆ เหล่านี้:

  1. เพียงสลับและตั้งค่าเป็นสิ่งที่คุณต้องการ:

ป้อนคำอธิบายภาพที่นี่

  1. เลือก UIView's / UIIMageView's / ... ที่คุณต้องการเลื่อนลง ในกรณีของฉันมีเพียงโลโก้ที่ทับซ้อนกันฉันได้ตั้งค่าเดลต้าเป็น +15; (หรือ -15 หากคุณเลือก iOS 7 ในขั้นตอนที่ 1)

ป้อนคำอธิบายภาพที่นี่

และผลลัพธ์ :

ก่อน หลังจาก


6
มันใช้งานได้ แต่ดูเหมือนว่าจะแก้ปัญหาได้ยาก มันจะเป็นการดีที่สุดที่จะแก้ไขปัญหาแทนที่จะทำการแก้ไข
NLemay

มันจะเป็นการดีที่สุดที่จะทำโดยทางโปรแกรมสำหรับการดูย่อยทั้งหมดของมุมมองเพราะมันจะไม่ทำงานหากนำไปใช้กับมุมมองหลัก
wildmonkey

5

โซลูชันที่รวดเร็ว:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.edgesForExtendedLayout = UIRectEdge.None
}

4
นี่คือ edgeForExtendedLayout = []
Leon

1
เนื่องจากนี่เป็นคำตอบสาธารณะเราไม่ควรลืมที่จะโทร:super.viewWillAppear(animated)
prodos

4

ฉันต้องการขยายคำตอบของ Stunner และเพิ่มifคำสั่งเพื่อตรวจสอบว่าเป็น iOS-7 หรือไม่เพราะเมื่อฉันทดสอบบน iOS 6 แอปของฉันจะมีปัญหา

นอกจากนี้จะเพิ่ม:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)

ดังนั้นฉันขอแนะนำให้เพิ่มวิธีนี้ในMyViewControler.mไฟล์ของคุณ:

- (void) viewDidLayoutSubviews {
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
        CGRect viewBounds = self.view.bounds;
        CGFloat topBarOffset = self.topLayoutGuide.length;
        viewBounds.origin.y = topBarOffset * -1;
        self.view.bounds = viewBounds;
    }
}


3

ฉันมีสถานการณ์ที่ฉันใช้ BannerViewController ที่เขียนโดย Apple เพื่อแสดงโฆษณาของฉันและ ScrollViewController ที่ฝังอยู่ใน BannerViewController

เพื่อป้องกันไม่ให้แถบการนำทางซ่อนเนื้อหาของฉันฉันต้องทำการเปลี่ยนแปลงสองครั้ง

1) แก้ไข BannerViewController.m

- (void)viewDidLoad
{
   [super viewDidLoad];
   float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
   if (systemVersion >= 7.0) {
      self.edgesForExtendedLayout = UIRectEdgeNone;
   }
}

2) แก้ไข ScrollViewContoller ของฉัน

- (void)viewDidLoad
{
    [super viewDidLoad];
    float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
    if (systemVersion >= 7.0) {
        self.edgesForExtendedLayout = UIRectEdgeBottom;
    }
}

ตอนนี้โฆษณาจะแสดงอย่างถูกต้องที่ด้านล่างของมุมมองแทนที่จะถูกครอบคลุมโดยแถบนำทางและเนื้อหาที่อยู่ด้านบนจะไม่ถูกตัดออก


2

เพียงแค่ตั้งค่ารหัสต่อไปนี้ในมุมมองจะปรากฏขึ้น

  if ([[[UIDevice currentDevice] systemVersion] floatValue]<= 7) {
self.edgesForExtendedLayout = UIRectEdgeNone;
 }

นี่เป็นสิ่งเดียวที่ทำงานในสถานการณ์ของฉัน
goobliata


2

Swift 4.2 - Xcode 10.0 - iOS 12.0:

if #available(iOS 11.0, *) {} else {
  self.edgesForExtendedLayout = []
  self.navigationController?.view.backgroundColor = .white
}

1

สำหรับฉันทางออกที่ง่ายที่สุดคือการเพิ่มสองปุ่มลงใน plist

ป้อนคำอธิบายรูปภาพที่นี่


+1 ฉันมี "แถบสถานะเริ่มแรกถูกซ่อน" = ใช่ แต่เมื่อเพิ่ม "ดูลักษณะแถบสถานะตามตัวควบคุม" = ไม่ฉันได้ลบแถบสถานะแล้ว
Jonas Byström

1

เพิ่มคีย์ "ดูควบคุมตามแถบสถานะลักษณะ" จาก DropDownList info.plistเป็นแถวใน บางสิ่งเช่นนี้

ป้อนคำอธิบายภาพที่นี่


ที่น่าสนใจมันช่วยให้โครงการ cocos2d ของฉันฉันสลับตัวเลือกนี้ฉันสามารถเห็นแถบสถานะด้านบนหายไปหรือปรากฏขึ้น
Kursat Turkay

1

ฉันมีปัญหาเดียวกันกับแอพของฉันโดย iPads (armv7, armv7s, amr64) โดยการนำเสนอ UIViewController อื่นเท่านั้นและหลังจากเลิกใช้พวกเขาไปแถบ nav ภายใต้แถบสถานะ ... ฉันใช้เวลามากในการหาทางแก้ปัญหานั้น ฉันใช้สตอรีบอร์ดและใน InterfaceBuilder สำหรับ UIViewController ซึ่งทำให้ฉันตั้งค่าการนำเสนอจากหน้าจอเต็ม -> บริบทปัจจุบันและแก้ไขปัญหานี้ มันทำงานได้ในแอพของฉันสำหรับ iPads => iOS8.0 (ทดสอบกับ iOS8.1) และสำหรับ iPads กับ iOS 7.1 ไม่ทำงาน !!ดูภาพหน้าจอ


ในกรณีของฉันมุมมองหลักของฉันทับแท็บบาร์ของฉันและฉันก็ไม่รู้ว่าทำไม ปรากฎการตรวจสอบการขยายขอบ> ภายใต้แถบด้านล่าง มันยากที่จะสังเกตเห็นเพราะพื้นหลังของแอพของฉันเป็นสีขาวและมันทำให้เกิดความทึบระดับเหนือ tabBar ของฉันเท่านั้น ขอบคุณ!
Jesus Rodriguez

0

ขั้นตอนสำหรับซ่อนแถบสถานะใน iOS 7:

1. ไปที่ไฟล์ข้อมูลแอปพลิเคชันของคุณ

2. และตั้งค่าดูลักษณะแถบสถานะที่ใช้ควบคุม: บูลีน NO

หวังว่าฉันจะแก้ไขปัญหาแถบสถานะ .....


0

ในกรณีของฉันที่มี loadView () ขัดจังหวะ
รหัสนี้: self.edgesForExtendedLayout = UIRectEdgeNone

แต่หลังจากลบ loadView () ทุกอย่างทำงานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.