小编Cod*_*ess的帖子

多行导航栏标题

我试图在导航栏中设置标题标签以允许多行.我有自定义导航控制器代码,我将多行代码放入.我知道代码已经存在,但我的多行部分无效.

let titleLabel = UILabel()
titleLabel.frame = CGRectMake(0, 0, self.navigationBar.frame.width, self.navigationBar.frame.height * 2)
titleLabel.numberOfLines = 0
titleLabel.lineBreakMode = .ByWordWrapping

navigationItem.titleView = titleLabel
Run Code Online (Sandbox Code Playgroud)

但是文本最后仍然没有结束.我也尝试将它放入单独的视图控制器本身,self.navigationController?.在前面添加navigationItem相同的结果.

我的代码中是否有一些东西会使标题标签不能使用多行?

xcode uinavigationbar ios swift swift3

9
推荐指数
1
解决办法
1万
查看次数

用粗体和斜体设置标签字体

我正在尝试使用 将标签的特定部分设置为粗体和斜体NSMutableAttributedString,但我只能得到一个或另一个。我使用的字体是 Clear Sans。将故事板上的整个标签字体设置为Bold Italic正常工作,但我只需要其中的一部分。所以我用

for family in UIFont.familyNames() {
    print("\(family)\n\t\(UIFont.fontNamesForFamilyName(family))")
}
Run Code Online (Sandbox Code Playgroud)

以确保它在那里,我发现

Clear Sans
    ["ClearSans", "ClearSans-Bold", "ClearSans-Italic"]
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它不在此处,而是在故事板中。所以我尝试使用这个答案,但它崩溃了,我认为与我没有找到的原因相同ClearSans-BoldItalic,但我不知道为什么它不在那里。

最后,我试着像这样“堆叠”两者

let bold = UIFont(name: "ClearSans-Bold", size: 20)
let italic = UIFont(name: "ClearSans-Italic", size: 20)

attributedCaption.addAttribute(NSFontAttributeName, value: bold!, range: (imageContainer.caption as NSString).rangeOfString(matchString))
attributedCaption.addAttribute(NSFontAttributeName, value: italic!, range: (imageContainer.caption as NSString).rangeOfString(matchString))
Run Code Online (Sandbox Code Playgroud)

但所有这些都是使用最后一个属性,这是我期望它做的。

是否有其他方法可以用来执行此操作,以便在标签的同一部分同时显示粗体和斜体?

编辑

我想包含项目中的字体,所以很明显我已经导入了它们。第二张图片是故事板上的字体列表。虽然它被掩盖了,但这个家庭实际上是Clear Sans

安装的字体 故事板选项

fonts ios nsmutableattributedstring swift

5
推荐指数
1
解决办法
8613
查看次数

将两个不同类型的数组排序为一个

我有两个数组,它们是两个不同的对象,并且都包含一个ID字段。我需要做的是在表视图控制器中按顺序显示它们。它们共享相同的基本信息,大小和ID,除了显示的对象类型外,这些都是唯一显示的数据。当用户选择一个单元格时,它将移动到一个新视图,该视图显示该对象的详细信息。

现在,表中有两个部分,一个部分用于TypeA,另一部分用于TypeB。他们对各自列表中的所有项目进行排序,但在制造项目时却无序。所以看起来像:

TypeA
  ID 1
  ID 2
  ID 5
  ID 6
TypeB
  ID 3
  ID 4
  ID 7
Run Code Online (Sandbox Code Playgroud)

我需要的是将它们全部分类为1部分,并在选择时仍打开详细视图。

思想

我可以将它们全部放入AnyObject词典中,然后在查看单个项目时确定它们是否属于一种对象类型或另一种。我觉得这样行得通,但是如何正确排序呢?

arrays sorting object ios swift

2
推荐指数
1
解决办法
564
查看次数

完全删除 JSON 中的行

我正在使用一种方法来删除 JSON 中的特定行。用户按下一个按钮,该按钮确定要删除哪一行。我知道正在传入正确的索引,但我的问题是,当我尝试删除该行时,它只是将其替换为null,所以仍然有一些东西。我怎样才能完全删除它?

function removeTest(place) {
    var parsedObject = JSON.parse(localStorage["flexuralStrengthSamples"]);
    delete parsedObject[parseInt(place.data.text)];

    localStorage["flexuralStrengthSamples"] = JSON.stringify(parsedObject);

    console.log(JSON.stringify(parsedObject));

    displaySamples();
}
Run Code Online (Sandbox Code Playgroud)

以及我生成的 JSON:

[{"Result":"Fail","Method":"T97E-v1","Beam1":{"TestingMachineId":"1","BeamAge":"1","WidthUpper":1,"WidthCenter":1,"WidthLower":1,"WidthAverage":1,"DepthRight":1,"DepthCenter":1,"DepthLeft":1,"DepthAverage":1,"MaxLoad":1,"FS":18,"PSI":"18.00000","BreakOutside":"No"},"Beam2":{"BeamAge":"","WidthUpper":null,"WidthCenter":null,"WidthLower":null,"WidthAverage":null,"DepthRight":null,"DepthCenter":null,"DepthLeft":null,"DepthAverage":null,"MaxLoad":null,"FS":null,"PSI":"NaN"},"WaitForCuring":"No","AverageOfBeams":"NaN"},null]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我尝试删除两个中的第二个。

arrays jquery json

2
推荐指数
1
解决办法
1万
查看次数

Android按钮文字颜色总是粉红色

当按钮在选定状态和非选定状态之间切换时,我试图更改按钮文本颜色和按钮背景颜色.背景效果很好,但文本显示为粉红色(默认情况下colorPrimary,我已更改).

res/drawable/map_button_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false">
        <shape android:shape="rectangle">
            <corners android:radius="4dp"/>
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>

    <item android:state_selected="true">
        <shape android:shape="rectangle">
            <corners android:radius="4dp"/>
            <solid android:color="@color/colorPrimary"/>
        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

res/drawable/map_button_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false">
        <color android:color="@color/colorPrimary"/>
    </item>

    <item android:state_selected="true">
        <color android:color="@android:color/white"/>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

res/styles/styles.xml

<style name="Button.Map">
    <item name="android:layout_height">0dp</item>
    <item name="android:layout_weight">1</item>
    <item name="android:layout_margin">4dp</item>
    <item name="android:background">@drawable/map_button_background</item>
    <item name="android:textColor">@drawable/map_button_text</item>
</style>
Run Code Online (Sandbox Code Playgroud)

此外,文字颜色永远不会改变,它始终保持粉红色.我尝试添加<item android:color="@color:/colorPrimary"/>以用作默认值,但它仍然无法正常工作.

关于是什么导致它的任何想法?

xml android state button

2
推荐指数
1
解决办法
1416
查看次数

日期总是在同一时间返回

我有一个扩展设置,String以相同的格式返回当前日期,以便可以调用代码中的任何位置并使用相同的格式,从而保持一致性.我的代码是

extension String {
    static let dateString = DateFormatter.localizedString(from: Date(), dateStyle: .short, timeStyle: .short)
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,当我调用它时,返回相同的确切时间,直到应用程序被杀死.如果我正在使用Date()那么它每次都应该使用新的价值,对吧?为什么不是这样?

date swift

2
推荐指数
1
解决办法
61
查看次数

PagerAdapter总是返回空白

我正在尝试制作一个图像寻呼机,根据我查找的所有教程,看来它已经正确完成了,但是我得到的只是一个空白屏幕。适配器instantiateItem方法的断点告诉我,正在调用它,并且所有正确的信息都已放入视图中,甚至可以滑动,但是我仍然看不到任何东西。这是我的代码

activity_photos.xml

<RelativeLayout> // I'm not including that code, irrelevant.
<android.support.v4.view.ViewPager
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/imagePager"
    android:background="@android:color/black"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

viewpager_itemx.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/imageView"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/imageLabel"
        android:textColor="@android:color/white"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

PhotosActivity.java

    final String[] images = getResources().getStringArray(R.array.tips_images);
    final String[] labels = getResources().getStringArray(R.array.tips_text);

    final ViewPager viewPager = (ViewPager) findViewById(R.id.imagePager);
    final ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(PhotoTipsActivity.this, images, labels);

    viewPager.setAdapter(viewPagerAdapter);
Run Code Online (Sandbox Code Playgroud)

最后是ViewPagerAdapter.java

公共类ViewPagerAdapter扩展了PagerAdapter {

private Context context;
private String[] images;
private String[] labels;

public ViewPagerAdapter(Context context, String[] images, String[] labels) …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-pageradapter

1
推荐指数
1
解决办法
335
查看次数