![]() |
iCL Slide-out Sidebar Menu
Halli Hallo,
hat es schon jemand geschafft, so ein schönes Slide-out Menü hinzubekommen, wie ![]() Brauche das zwingend in meiner App und habe keine blassen Schimmer wie ich das machen soll :pale: Viele Grüße Croco |
AW: iCL Slide-out Sidebar Menu
Das
![]() |
AW: iCL Slide-out Sidebar Menu
Das hab ich ja vor längerer Zeit schon mal mit FIREMONKEY gemacht. Jetzt geht es um die nativen Controls.
|
AW: iCL Slide-out Sidebar Menu
So läuft mein Sidemenu:
Delphi-Quellcode:
Zur Info: svSideMenu ist eine iCL Scrollview
if frmSideMenu.svSideMenu.Position.X < 0 then
begin frmSideMenu.svSideMenu.Parent := frmMain; frmSideMenu.svSideMenu.Initialize; TUIView.OCClass.beginAnimations(nil, nil); TUIView.OCClass.setAnimationDuration(0.4); frmSideMenu.svSideMenu.SetBounds(0, 138, 320, 602); TUIView.OCClass.commitAnimations; end else begin TUIView.OCClass.beginAnimations(nil, nil); TUIView.OCClass.setAnimationDuration(0.4); frmSideMenu.svSideMenu.SetBounds(-320, 138, 320, 602); TUIView.OCClass.commitAnimations; end; |
AW: iCL Slide-out Sidebar Menu
Verwendest du das Sidemenu auch im Zusammenhang mit einem PageViewControl?
|
AW: iCL Slide-out Sidebar Menu
Ich habe eine Scrollview genommen, damit ich alle reinpacken kann. Habe aktuell nur Views drin.
|
AW: iCL Slide-out Sidebar Menu
Hast du eine App im Appstore, wo man sich das angucken kann?
|
AW: iCL Slide-out Sidebar Menu
Du hast doch den Code... Die App läuft unter einen Inhouse-Account, kann ich also nicht bereitstellen.
|
AW: iCL Slide-out Sidebar Menu
Mein Problem ist, dass ich ein PageViewController benutze. Wenn ich nach ganz rechts wische, will ich, dass sich das Menü öffnet, wie bei der Facebook-App.
|
AW: iCL Slide-out Sidebar Menu
Form -> Gestures -> Standard -> Left / Right
Oder MouseMove |
AW: iCL Slide-out Sidebar Menu
Wenn ich das so mache, habe ich nicht den gewünschten Slide-Effekt...
ist es vielleicht möglich, die bei dem Tutorial verwendete ![]() |
AW: iCL Slide-out Sidebar Menu
Ok, ich werde jetzt erstmal so ein "provisorisches" Menü hinwursteln, denn ohne geht es einfach nicht.
Dazu noch eine Frage: Mit was verwalte ich dann die ganzen Views? Also, wenn ich im Menü dann ein Item auswähle, soll ja ein anderes View angezeigt werden.Ich weiß, dass der NavigationController soetwas tun kann, aber das ist immer diese blöde Leiste oben. Ich möchte ja nur das "Fenster" ändern. |
AW: iCL Slide-out Sidebar Menu
Also, ich habe jetzt folgendes herausgefunden:
Dem TableView muss man als DetailView ein "Blanko-View" zuweise, auf das dann später die DetailViews der einzelnen Items angezeigt werden. Dafür muss man natürlich noch jedem Item des TableViews ein DetailView zuweisen. Wenn ich meine App jetzt aber starte, sehe ich zuerst das blanke View, bis ich ein Item auswähle. Weiß jemand, wie ich einfach mal das erste DetailView des ersten Items anzeige= Folgendes funktioniert nicht:
Delphi-Quellcode:
o_menu.DetailView:= MainView;
o_menu.Sections[0].Items[0].DetailView:= View1; o_menu.Sections[0].Items[1].DetailView:= View2; o_menu.Sections[0].Items[2].DetailView:= View3; o_menu.NavigationController.pushViewController(View1.getViewController,false); |
AW: iCL Slide-out Sidebar Menu
Probier mal danach ein
o_menu.initialze |
AW: iCL Slide-out Sidebar Menu
Funktioniert leider nicht :(
|
AW: iCL Slide-out Sidebar Menu
kannst du mal ein Testprojekt hochladen?
|
AW: iCL Slide-out Sidebar Menu
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Testprojekt
|
AW: iCL Slide-out Sidebar Menu
Und die Lösung lautet:
Delphi-Quellcode:
Es funktioniert, wenn ich diese Funktion z.B. im Event eines Buttons aufrufe.
procedure TF_MainiOS.SelectItem(var ATableView: TTMSFMXNativeUITableView; AIndex: Integer);
var idx: FMX.TMSNativeUICore.NSIndexPath; vwMaster: UIView; s, r: Integer; dt, idt: TTMSFMXNativeUIBaseControl; rs: NSRect; n: Integer; currentView: UIView; begin idx := FMX.TMSNativeUICore.TNSIndexPath.Wrap(FMX.TMSNativeUICore.TNSIndexPath.OCClass.indexPathForRow(AIndex, 0)); ATableView.TableView.selectRowAtIndexPath(iOSApi.Foundation.NSIndexPath(idx), False, UITableViewScrollPositionTop); if not Assigned(ATableView) then Exit; s:= Integer(idx.section); r:= Integer(idx.row); idt:= ATableView.GetItem(s,r).SubDetailView; dt:= ATableView.GetItem(s,r).DetailView; {if Assigned(currentView) then currentView.removeFromSuperView;} vwMaster := ATableView.DetailView.GetView; if Assigned(vwMaster) then begin for n:= 0 to dt.ChildrenCount - 1 do begin if dt.Children[n] is TTMSFMXNativeUIBaseControl then begin (dt.Children[n] as TTMSFMXNativeUIBaseControl).Visible := True; (dt.Children[n] as TTMSFMXNativeUIBaseControl).Initialize; end; end; currentView:= dt.GetView; if Assigned(currentView) then begin rs.origin.x := dt.Position.X; rs.origin.y := dt.Position.Y; rs.size.width := dt.Width; rs.size.height := dt.Height; currentView.sethidden(false); vwMaster.addSubview(currentView); currentView.setFrame(rs); end; end; ATableView.OnItemSelect(ATableView, 0, AIndex); end; Im OnFormCreate hat es keine Auswirkung, warum? |
AW: iCL Slide-out Sidebar Menu
Slide Menu siehe D.P.F iOS Native Components
|
AW: iCL Slide-out Sidebar Menu
Zitat:
Ich hatte das selbe Problem wie du aber eben OnActivate war die Lösung Die Prozedur sieht dann so aus
Delphi-Quellcode:
procedure TMeineForm.FormActivate(Sender: TObject);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz