我希望平板电脑能够以纵向和横向(sw600dp或更高)显示,但手机仅限于纵向.我找不到有条件选择方向的方法.有什么建议?
我根本找不到任何关于我应该包含在我的特征图形中的文档.列出的唯一信息是:
1024w x 500h
24位PNG或JPEG(无alpha)
将缩小到迷你或微型
但它应包含哪些内容?谢谢你的帮助.
我试图让ActionBar在我的应用程序上正常工作(我正在使用ActionBarSherlock在Android 2.x和4.x之间获得统一的UI).
我觉得android:showAsAction="ifRoom"
这只是一个大而肥胖的谎言.每当我设置动作时,ifRoom
即使有足够的空间,也会在溢出菜单中显示.以下是来自同一模拟器的两个屏幕截图.第一个显示ActionBar,其中所有选项都设置为always
,第二个显示ActionBar,后两个选项设置为ifRoom
.正如你所看到的那样,当always
屏幕截图中显示所有房间时,还有很多空间,所以为什么它们都没有在第二个显示,因为它们有空间?
这是我的menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/add"
android:icon="@drawable/ic_menu_btn_add"
android:showAsAction="always"
android:title="Add"/>
<item
android:id="@+id/calculateNPV"
android:icon="@drawable/menu_icon_npv"
android:showAsAction="always"
android:title="NPV"/>
<item
android:id="@+id/calculateIRR"
android:icon="@drawable/menu_icon_irr"
android:showAsAction="always"
android:title="IRR/YR"/>
<item
android:id="@+id/send"
android:icon="@android:drawable/ic_menu_share"
android:showAsAction="always"
android:title="@string/share_pdf"/>
<item
android:id="@+id/graph"
android:icon="@drawable/ic_menu_gallery"
android:showAsAction="ifRoom"
android:title="@string/view_cashflow_diagram"/>
<item
android:id="@+id/deleteReorder"
android:icon="@drawable/ic_menu_clear_playlist"
android:showAsAction="ifRoom"
android:title="@string/delete_reorder_cashflows"/>
</menu>
Run Code Online (Sandbox Code Playgroud) android android-layout android-menu actionbarsherlock android-actionbar
我理解在Interface Builder中对齐,调整大小和分发视图的旧Struts和Springs方法.但是,我似乎无法弄清楚如何使用Xcode 5使用自动布局均匀分布视图.有一种方法可以使用Xcode 4,但该选项已经消失.
我有7个按钮排列在垂直堆栈中.在3.5英寸的布局上,它看起来很棒.当我在4英寸布局中预览屏幕时,所有按钮都保持紧密包装,并且最后一个按钮下方有大量空间.
我希望它们保持相同的高度,但我希望它们之间的空间能够弯曲,以便它们可以在屏幕上展开.
我已经能够使按钮的高度弯曲并填充空间,但这不是我想要的行为.我想学习如何使用自动布局来替换旧的Springs行为,但我似乎无法通过Interface Builder找到任何方法.
我可以使用顶部按钮,它可以是顶部边缘的固定空间,也可以是顶部边缘的比例空间,同样适用于底部按钮和底部边缘.那些对我来说不那么重要,我也很擅长.
但我真的需要弄清楚如何在视图中的每个项目之间均匀分配额外的空间.
我正在向我的某个应用提交更新.我已经用我开发的许多不同的应用程序完成了这几十次,但是这个应用程序因为一些奇怪的原因而失败了.我存档我的应用程序,然后尝试验证存档并获取以下错误消息:
This bundle is invalid. The key CFBundleVersion in the Info.plist file must
contain a higher version than that of the previously uploaded version.
Run Code Online (Sandbox Code Playgroud)
iTunesConnect显示此应用目前为1.0,我已将其配置为准备上传1.1版(带有应用图标编辑的屏幕截图):
这是我的应用目标的摘要信息的屏幕截图,显示版本和短版本都是"1.1":
以下是Bundle Archive中Info.plist的上半部分:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppStoreFileSize</key>
<integer>20859080</integer>
<key>ApplicationProperties</key>
<dict>
<key>ApplicationPath</key>
<string>Applications/MyApp.app</string>
<key>CFBundleIdentifier</key>
<string>com.mydomain.myapp</string>
<key>CFBundleShortVersionString</key>
<string>1.1</string>
Run Code Online (Sandbox Code Playgroud)
这是Archive包中应用程序内的相关Info.plist:
<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>
Run Code Online (Sandbox Code Playgroud)
我更新的应用程序中的所有版本号都说1.1,iTunesConnect说它预计会有1.1 ......但它抱怨这个数字是错误的.
我错过了什么?
我是第一次实施In App Billing,我正在使用静态SKU ID测试我的第一次购买.
它第一次运作良好.我致电mHelper.launchPurchaseFlow(...)
并完成了测试购买.我的活动收到onActivityResult
回调,我确保处理它mHelper.handleActivityResult(...)
.一切都很棒.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Pass on the activity result to the helper for handling
log("onActivityResult");
if (!this.mHelper.handleActivityResult(requestCode, resultCode, data)) {
log("cleared the launch flow");
// not handled, so handle it ourselves (here's where you'd
// perform any handling of activity results not related to in-app
// billing...
super.onActivityResult(requestCode, resultCode, data);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想测试下一部分,所以我重新启动了应用并尝试购买相同的SKU(静态purchased
SKU).
mHelper.launchPurchaseFlow(rootActivity, "android.test.purchased", 10002,
new IabHelper.OnIabPurchaseFinishedListener() {
@Override …
Run Code Online (Sandbox Code Playgroud) 我的一个旧应用程序不适用于iOS8.当我启动应用程序并尝试在任何地方点击屏幕时,我在控制台中收到此消息:
unexpected nil window in _UIApplicationHandleEventFromQueueEvent,
_windowServerHitTestWindow: <UIWindow: 0x7fe4d3e52660; frame = (0 0; 320 568);
opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7fe4d3e2c450>;
layer = <UIWindowLayer: 0x7fe4d3e86a10>>
Run Code Online (Sandbox Code Playgroud)
我正在使用旧式MainWindow.xib.在MainWindow.xib中是我的Window对象,以及UINavigationController,它也在其中定义了第一个View Controller.下图显示了连接到App Delegate的Outlets.
下面屏幕截图中的白色"视图"是UIWindow.右边的视图是UINavigationController(隐藏导航栏),其中定义了第一个ViewController.
如何在不使用新项目从头开始重新创建整个应用程序的情况下解决此问题?
编辑:我刚刚发现有一个TINY条带,其中我的按钮实际上会收到他们的点击/点击.
我也注意到我的self.view.window是零.我如何确保设置?
我有一个UITableViewController与UISearchBar和UISearchDisplayController.它存在于UIVavigationController中的UIViewController中的Container视图中.我制作了这张图片来帮助描述结构:
这就是它的真实情况:
当我点击搜索栏时,我必须隐藏导航栏.通常情况下,这会自行发生,但由于我的UITableViewController在Container View中,我必须自己处理这个更改.这就是它的样子,注意状态栏是白色的,因为导航栏是白色的,即使它现在是隐藏的.
一旦我开始输入一些搜索文本,结果就会显示出来.如果我向上滚动这些结果,它们会在搜索栏下方传递,但它们与状态栏重叠,这非常没有吸引力.
如果不涉及容器视图,则这一切都按预期工作,并且表内容在状态栏下方传递,但是涉及ContainerView时,表文本和状态栏会发生冲突.
如何使状态栏下的文本正常运行?
uitableview uisearchbar uisearchdisplaycontroller ios uicontainerview
我有一个ViewPager和一个带有标签的ActionBar.其中一个选项卡有一个ListView,当我点击该ListView中的一个选项时,我添加了一个子Fragment,它是该行的详细视图.
该详细视图是一个ScrollView,里面有一个LinearLayout.ScrollView match_parent/match_parent
和它里面的LinearLayout是width=match_parent
和height=wrap_content
.在手机大小的模拟器上,详细视图根据需要填充屏幕,但在平板电脑上,详细视图仅覆盖屏幕宽度的一部分...即使ScrollView的宽度和LinearLayout的宽度为两个match_parent.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView" style="@style/RootScrollView">
<LinearLayout android:id="@+id/scrollContentView" style="@style/ScrollViewContent">
...
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
这是滚动视图的样式:
<style name="RootScrollView">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
以下是LinearLayout内容的样式:
<style name="ScrollViewContent">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingLeft">15dp</item>
<item name="android:paddingRight">15dp</item>
<item name="android:orientation">vertical</item>
<item name="android:background">@drawable/image_legal_paper_tile</item>
</style>
Run Code Online (Sandbox Code Playgroud)
内容视图有一个重复的背景image_legal_paper_tile
,这是:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/legal_paper_tile"
android:gravity="fill_horizontal"
android:tileMode="repeat" />
Run Code Online (Sandbox Code Playgroud)
因此,图像应水平拉伸并重复,从而在背景中创建黄色合法纸垫.
这就是列表和详细视图看起来像手机模拟器:
这是真实平板电脑上的列表和详细视图.黄色的合法垫片段应该填满整个屏幕的宽度,但事实并非如此.
编辑:
这是背景法律文件图像:
它宽320像素.手机模拟器宽480像素,图像正确拉伸,以填充屏幕宽度.然后按预期垂直重复.但是,它不会拉伸以填充平板电脑上的屏幕宽度.
平板电脑上显示的宽度不是图像的原始大小,因为它会根据内容更改大小.片段首次加载时,它是一个宽度.然后我填写字段并执行计算,在内容视图的底部添加一些文本.该文本比现有内容更宽,因此在设置文本时,片段的宽度会增加以支持更宽的内容.
所以,简而言之,不,平板电脑上的宽度不是图像的原始尺寸.图像是伸展的,只是没有一直伸展.
我刚刚使用Xcode的自动重构将旧项目转换为ARC.
@property (nonatomic, retain) NSMutableArray *cards;
Run Code Online (Sandbox Code Playgroud)
被替换为:
@property (nonatomic) NSMutableArray *cards;
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为我读到的是"强"是默认状态.但是,以下行给出了标题中的错误:
self.cards = [[NSMutableArray alloc] initWithCapacity:54];
Run Code Online (Sandbox Code Playgroud)
通过strong
在以下保留的位置添加回来解决错误:
@property (nonatomic, strong) NSMutableArray *cards;
Run Code Online (Sandbox Code Playgroud)
但是......如果我需要回过头strong
来处理每个@property声明,那么retain
为什么ARC重构将它们全部删除?
android ×5
ios ×3
xcode ×2
android-menu ×1
autolayout ×1
constraints ×1
google-play ×1
graphic ×1
hittest ×1
ios7 ×1
ios8 ×1
publish ×1
tablet ×1
uisearchbar ×1
uitableview ×1
uiwindow ×1
xcode5 ×1