我试图在导航栏中设置标题标签以允许多行.我有自定义导航控制器代码,我将多行代码放入.我知道代码已经存在,但我的多行部分无效.
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相同的结果.
我的代码中是否有一些东西会使标题标签不能使用多行?
我正在尝试使用 将标签的特定部分设置为粗体和斜体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。
我有两个数组,它们是两个不同的对象,并且都包含一个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词典中,然后在查看单个项目时确定它们是否属于一种对象类型或另一种。我觉得这样行得通,但是如何正确排序呢?
我正在使用一种方法来删除 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)
在这种情况下,我尝试删除两个中的第二个。
当按钮在选定状态和非选定状态之间切换时,我试图更改按钮文本颜色和按钮背景颜色.背景效果很好,但文本显示为粉红色(默认情况下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"/>以用作默认值,但它仍然无法正常工作.
关于是什么导致它的任何想法?
我有一个扩展设置,String以相同的格式返回当前日期,以便可以调用代码中的任何位置并使用相同的格式,从而保持一致性.我的代码是
extension String {
static let dateString = DateFormatter.localizedString(from: Date(), dateStyle: .short, timeStyle: .short)
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当我调用它时,返回相同的确切时间,直到应用程序被杀死.如果我正在使用Date()那么它每次都应该使用新的价值,对吧?为什么不是这样?
我正在尝试制作一个图像寻呼机,根据我查找的所有教程,看来它已经正确完成了,但是我得到的只是一个空白屏幕。适配器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)