툴바로 작동하는 스토리 보드에 맞춤보기가 있습니다. 이 뷰에는 세 개의 버튼이 있으며 ViewDidLoad의 각 버튼에 대한 사용자 정의 뷰를 정의합니다.ios보기가 다른 화면으로 이동하면 사라집니다.
다른보기로 이동 한 다음이 원래 화면으로 뒤로 이동하면이 단추의 텍스트와 이미지가 모두 사라집니다. 빈 검은 색 막대 만있어. 이것은 일부 장치에서 발생하지만보기가 잘 표시되고 다른 장치에서는 사라지지 않습니다.
내가 무엇을 시도했다 : 나는 명시 적으로 false를 ViewWillAppear
btn1.Hidden = false로이 버튼의 숨겨진 속성을 설정 한
; btn2.Hidden = false; btn3.Hidden = false;
또한 ViewDidLoad 대신 ViewWillAppear의 버튼을 정의하여 문제가 해결되는지 확인하려고했습니다. 그들은 여전히 사라집니다.
public override void ViewWillAppear(bool value) { try { base.ViewWillAppear(value); //icon setup //the space between the image and modelFilterText var spacing = 0.3f; var icon1 = UIImage.FromBundle("Icons/Home/icon1.png"); btn1.SetImage(icon1, UIControlState.Normal); btn1.SetTitle("ONE", UIControlState.Normal); btn1.SetTitleColor(UIColor.LightGray, UIControlState.Normal); btn1.Font = UIFont.FromName("BankGothicBT-Light", 12f); btnRequest.TouchUpInside += (object sender, EventArgs e) => { NavigationItem.BackBarButtonItem = new UIBarButtonItem("", UIBarButtonItemStyle.Plain, null); NavigationController.PushViewController(view1, true); }; // lower the modelFilterText and push it left so it appears centered // below the image var imageSize = btn1.ImageView.Image.Size; btn1.TitleEdgeInsets = new UIEdgeInsets(0.0f, -imageSize.Width, -(imageSize.Height + spacing), 0.0f); // raise the image and push it right so it appears centered // above the modelFilterText var titleSize = btn1.TitleLabel.Text.StringSize(btn1.TitleLabel.Font); btn1.ImageEdgeInsets = new UIEdgeInsets(-(titleSize.Height + spacing), 0.0f, 0.0f, -titleSize.Width); //Second Icon var icon2 = UIImage.FromBundle("Icons/Home/icon2.png"); btn2.SetImage(icon2, UIControlState.Normal); btn2.SetTitle("TWO", UIControlState.Normal); btn2.SetTitleColor(UIColor.LightGray, UIControlState.Normal); btn2.Font = UIFont.FromName("BankGothicBT-Light", 12f); btn2.TouchUpInside += (object sender, EventArgs e) => { NavigationItem.BackBarButtonItem = new UIBarButtonItem("", UIBarButtonItemStyle.Plain, null); }; // lower the modelFilterText and push it left so it appears centered // below the image var imgSize = btn2.ImageView.Image.Size; btn2.TitleEdgeInsets = new UIEdgeInsets(0.0f, -imgSize.Width, -(imgSize.Height + spacing), 0.0f); // raise the image and push it right so it appears centered // above the modelFilterText var titleLength = btn2.TitleLabel.Text.StringSize(btn2.TitleLabel.Font); btn2.ImageEdgeInsets = new UIEdgeInsets(-(titleLength.Height + spacing), 0.0f, 0.0f, -titleLength.Width); //Third Icon var icon3 = UIImage.FromBundle("Icons/Home/icon3.png"); btn3.SetImage(icon3, UIControlState.Normal); btn3.SetTitle("THREE", UIControlState.Normal); btn3.SetTitleColor(UIColor.LightGray, UIControlState.Normal); btn3.Font = UIFont.FromName("BankGothicBT-Light", 12f); btn3.TouchUpInside += (object sender, EventArgs e) => { NavigationItem.BackBarButtonItem = new UIBarButtonItem("", UIBarButtonItemStyle.Plain, null); NavigationController.PushViewController(view3, true); }; // lower the modelFilterText and push it left so it appears centered below the image var imagSize3 = btn3.ImageView.Image.Size; btn3.TitleEdgeInsets = new UIEdgeInsets(0.0f, -imagSize3.Width, -(imagSize3.Height + spacing), 0.0f); // raise the image and push it right so it appears centered // above the modelFilterText var titleLength3 = btn3.TitleLabel.Text.StringSize(btn3.TitleLabel.Font); btn3.ImageEdgeInsets = new UIEdgeInsets(-(titleLength3.Height + spacing), 0.0f, 0.0f, -titleLength3.Width); } catch (Exception ex) { Console.WriteLine("View will appear error " + ex.Message + ex.StackTrace); } }
버튼이 표시 제대로 처음 그려집니다 :
다음은 내 코드입니다. 그러나이 페이지에서 나가서 다시 돌아온 후에는 하단에 검은 색보기 만 있습니다. 버튼이 없습니다.