我有一个工具栏,如下所示:

问题是它有点混乱,因此我想为它添加一些间距.我试过做:
UIBarButtonItem *spacer =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
self.toolbar_array =
[[NSMutableArray alloc] initWithObjects:self.mention,
spacer,
self.picture,
spacer,
share,
spacer,
self.message, nil];
Run Code Online (Sandbox Code Playgroud)
但它仍然给了我同样的东西.如何在这些之间添加10px UIBarButtonItems?
我想Remove()或Clear() ToolbarItems.这是我ToolbarItem在MainPage.cs中创建的代码
public partial class MainPage : MasterDetailPage
{
public ToolbarItem cCounter = new ToolbarItem() { Icon = "picture.png" };
public ToolbarItem pPo = new ToolbarItem() { Text = "-" };
public MainPage()
{
InitializeComponent();
if (Device.OS == TargetPlatform.iOS)
{
provider.Clicked += iOS_Ppo_Clicked;
ToolbarItems.Add(cCounter);
ToolbarItems.Add(pPo);
}
}
private void iOS_Ppo_Clicked(object sender, EventArgs e)
{
OpenWindow();
}
public async void OpenWindow()
{
if (await Common.WindowComands.CanOpenWindow<PPoPage>(Detail))
{
page = new PPoPage(Page3.Allproviders);
this.ToolbarItems.Clear(); // here I am …Run Code Online (Sandbox Code Playgroud) 我正在添加toolbar item到Page.ToolbarItems列表中,但我想在某些之间添加一个行分隔符toolbar item.我可以添加一个toolbar item带有线条图像的新图像,但是Action当按下该线条时我需要阻止它,并且它不允许我使用它null.它看起来也不太理想.
请注意,每个ToolbarItem都是通过C#代码添加的,而不是通过Xaml添加的.
这里有一些伪代码作为我现在的例子:
if(!ToolbarItems.Any())
{
ToolbarItems.Add(new ToolbarItem("Page 1", null, NavigateToPage1(), ToolbarItemOrder.Secondary, 0);
ToolbarItems.Add(new ToolbarItem("Page 2", null, NavigateToPage2(), ToolbarItemOrder.Secondary, 0);
// <Insert Separator Here>
if(boolVal) {
ToolbarItems.Add(new ToolbarItem("Page 3", null, NavigateToPage3(), ToolbarItemOrder.Secondary, 0);
}
ToolbarItems.Add(new ToolbarItem("Page 4", null, NavigateToPage4(), ToolbarItemOrder.Secondary, 0);
ToolbarItems.Add(new ToolbarItem("Page 5", null, NavigateToPage5(), ToolbarItemOrder.Secondary, 0);
// <Insert Separator Here>
ToolbarItems.Add(new ToolbarItem("Page 6", null, NavigateToPage6(), ToolbarItemOrder.Secondary, 0);
}
Run Code Online (Sandbox Code Playgroud) 尝试使用触发器从 XAML 打开/关闭它时,我遇到了ToolbarItem和IsEnabled属性的问题。ToolbarItem不支持触发器,所以我要做的是创建一个Button支持触发器的(隐藏的),然后绑定Button.IsEnabled到ToolbarItem.IsEnabled;这是示例代码:
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="tlbSave" Text="Save" Clicked="Handle_Clicked">
<ToolbarItem.IsEnabled>
<Binding Source="{x:Reference btnTest}" Path="IsEnabled" />
</ToolbarItem.IsEnabled>
</ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout Padding="10" VerticalOptions="CenterAndExpand">
<Entry x:Name="txtTest" HorizontalOptions="FillAndExpand" />
<Button x:Name="btnTest" Text="HIDDEN" IsEnabled="false" HorizontalOptions="FillAndExpand">
<Button.Triggers>
<MultiTrigger TargetType="Button">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding Source={x:Reference txtTest}, Path=Text.Length,
Converter={convert:IsPositiveIntegerConverter}}" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="IsEnabled" Value="True" />
</MultiTrigger>
</Button.Triggers>
</Button>
</StackLayout>
</ContentPage.Content>
Run Code Online (Sandbox Code Playgroud)
如果您尝试这段代码,您将看到btnTest在txtTest.Text具有某些值时如何启用/禁用。但不影响tlbSave.IsEnabled财产。
但是,当我设置tlbSave.IsEnabled为EventHandler时,这在代码中完美无缺btnText.PropertyChanged
btnTest.IsVisible是false …
我不知道我做错了什么.文件名正确,样式设置为plain.但我得到了一个像我的图像大小的银行白盒子.我正在使用UINavigationController.
请帮忙,谢谢你提前谢谢.
**仅供参考我对目标c不熟悉,所以对我来说不要太难.;)
UIBarButtonItem *toolbarChannelGuideButton = [[UIBarButtonItem alloc]
initWithImage:[UIImage imageNamed:@"channel-guide-button.png"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(action:)];
self.toolbarItems = [NSArray arrayWithObjects:toolbarChannelGuideButton, nil];
[toolbarChannelGuideButton release];
Run Code Online (Sandbox Code Playgroud) iphone objective-c uinavigationcontroller uibarbuttonitem toolbaritems
我有一组工具栏按钮,仅当设备是 iPhone(不是 iPad)时才应显示。
以下代码失败并出现此错误:
包含控制流语句的闭包不能与结果生成器“ToolbarContentBuilder”一起使用
我确实明白为什么它会失败,但我无法提出一个解决方案来实现我所需要的。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(
destination: Hello(),
label: {
Text("Hello")
})
}
}
}
}
struct Hello: View {
var body: some View {
Text("Hello World")
.toolbar() {
if UIDevice.current.userInterfaceIdiom == .phone {
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {
// do something
}, label: {
Text("Button1")
})
}
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {
// do something
}, label: {
Text("Button2")
})
}
}
ToolbarItem(placement: …Run Code Online (Sandbox Code Playgroud) 我目前正在阅读这本书。
在本书的开头我就遇到了一个问题。我有PrimaryToolbarItems 和SecondaryToolbarItems。但它们都没有显示。我究竟做错了什么?
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:BookCode"
x:Class="BookCode.MainPage"
Title="Visuals">
<StackLayout Padding="10,0">
<Label Text="Hello, Xamarin.Forms!"
FontSize="Large"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"/>
<Button Text="Click Me!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"/>
<Switch VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"/>
</StackLayout>
<ContentPage.ToolbarItems>
<ToolbarItem Text="edit" Order="Primary">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="edit.png"
Android="ic_action_edit.png"
WinPhone="Images/edit.png"/>
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem Text="search" Order="Primary">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="search.png"
Android="ic_action_search.png"
WinPhone="Images/feature.search.png"/>
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem Text="refresh" Order="Primary">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="reload.png"
Android="ic_action_refresh.png"
WinPhone="Images/refresh.png"/>
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem Text="explore" Order="Secondary"/>
<ToolbarItem Text="discover" Order="Secondary"/>
<ToolbarItem Text="evolve" Order="Secondary" />
</ContentPage.ToolbarItems> …Run Code Online (Sandbox Code Playgroud) toolbaritems ×7
c# ×2
iphone ×2
objective-c ×2
toolbar ×2
xamarin ×2
ipad ×1
swiftui ×1
swiftui-view ×1
xamarin.ios ×1
xaml ×1