小编shi*_*him的帖子

在UICollectionView/UICollectionViewLayout上禁用交叉淡入淡出的最佳最佳方法是旋转还是限制更改?

我有一个子类UICollectionViewLayout,将单元格放在一个圆圈中.布局返回YES呼叫shouldInvalidateLayoutForBoundsChange:.旋转时,初始位置的单元格淡出,最终位置的单元格淡入.

通过在我的布局中添加以下代码,我可以禁用淡入淡出,并且项目的圆圈似乎只是随着方向更改而旋转:

- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
    return nil;
}

- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
    return [self layoutAttributesForItemAtIndexPath:itemIndexPath];
}
Run Code Online (Sandbox Code Playgroud)

为什么这些方法会在边界变化时调用,因为文档似乎没有暗示它们会这样做?文档似乎表明它们被称为与从集合视图中插入和删除项目相关.

是否有更好的方法可以在旋转期间禁用交叉淡入淡出?

笔记:

  • initialLayoutAttributesForAppearingItemAtIndexPath:文档声明默认情况下该方法返回nil但调用super返回的非零值.
  • 我在UICollectionView方法上设置了符号断点 UICollectionView,deleteItemsAtIndexPaths:并且 moveItemAtIndexPath:toIndexPath:在旋转期间都没有命中它们.

iphone cocoa-touch uikit ios uicollectionview

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

iOS在视图中添加/删除阴影

我不明白如何删除添加到视图中的阴影.我以initWithFrame这种方式在阴影中添加到我的视图中:

self.layer.borderWidth = 2;
self.layer.borderColor = [UIColor clearColor].CGColor;
self.backgroundColor = [UIColor greenColor];
[self.layer setCornerRadius:8.0f];
CALayer *layer = self.layer;
layer.shadowOffset = CGSizeMake(2, 2);
layer.shadowColor = [[UIColor blackColor] CGColor];
layer.cornerRadius = 8.0f;
layer.shadowRadius = 3.0f;
layer.shadowOpacity = 0.80f;
layer.shadowPath = [[UIBezierPath bezierPathWithRect:layer.bounds] CGPath];
Run Code Online (Sandbox Code Playgroud)

在执行应用程序后,我想从此视图中删除阴影.我尝试过使用:

layer.hidden = YES;
Run Code Online (Sandbox Code Playgroud)

要么

self.layer.hidden = YES;
Run Code Online (Sandbox Code Playgroud)

但这完全隐藏了视图,而不仅仅是添加了阴影.

有没有办法从视图中检索添加的阴影然后隐藏它?谢谢!

uiview ios

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

如何在复制时使用[NSFileManager defaultManager]覆盖文件夹?

使用下面的行,

[fileManager copyItemAtPath:sourcePath toPath:targetPath error:&error];
Run Code Online (Sandbox Code Playgroud)

我们可以复制文件夹,但如果文件夹已经存在,则会抛出异常"文件存在".为了覆盖单个文件,我们可以通过以下几行来实现:

NSData *myData = [NSData dataWithContentsOfURL:FileURL]; /fetch single file
[myData writeToFile:targetPath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

但我想复制一个已经存在的文件夹,即覆盖.

编辑:简单的可能性,我可以在复制之前删除这些项目.

请提出更多可能性.

iphone objective-c nsfilemanager ios

14
推荐指数
2
解决办法
6458
查看次数

斯威夫特===没有

为什么以下内容在Swift中不起作用?

if someObject === nil {
}
Run Code Online (Sandbox Code Playgroud)

你必须使用==运算符进行测试,例如

if someObject == nil {
}
Run Code Online (Sandbox Code Playgroud)

我认为===更像是确保实例完全相同(基本上比较指针)和==更像是一个isEqual检查.因此我认为===更适合测试nil,但我显然是不正确的.

文件说明:

===或"与...相同"意味着类类型的两个常量或变量引用完全相同的类实例.

==或"等于"意味着两个实例的值被认为是"相等"或"等价",对于某些适当的"相等"含义,由类型的设计者定义."

swift

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

检测webview视频何时在ios8上全屏显示

我有一个应用程序,用户可以从UIWebview打开视频,包括Youtube.在iOS7中,我能够在开始播放或者全屏时收到通知,这对我向用户显示某些选项和修改界面至关重要.

我以前用这个:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(VideoExitFullScreen:) name:@"UIMoviePlayerControllerDidExitFullscreenNotification" object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(VideoEnterFullScreen:) name:@"UIMoviePlayerControllerDidEnterFullscreenNotification" object:nil];
Run Code Online (Sandbox Code Playgroud)

但是,自iOS8以来,我无法实现这一点.这就像UIWebview视频不再触发通知一样.但是,正如我测试的那样,它仍然是从普通视频,非Webview触发的.

什么改变了?

youtube video mpmovieplayercontroller uiwebview ios

14
推荐指数
3
解决办法
9288
查看次数

通过Xcode导入自动建议的这条红线是什么

什么是这条红线,它是什么意思?这是Xcode 7.3,Cocoapods 0.39.0

红线有问题

键入导入后,我没有看到任何错误或警告.我可以毫无问题地使用该库.库本身有警告,但这些与Xcode 7.3更改为swift有关.我以前从未注意到这一点.

有时Xcode说我的Pod项目没有推荐设置,但在应用推荐设置后仍然会发生这种情况.

xcode ios cocoapods swift

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

Xcode 无法解析依赖项 Firebase - GoogleAppMeasurement 与要求不匹配

我是 Xcode 编码新手,正在尝试在我的项目上安装 Firebase,但遇到一个错误,我不知道如何解决。\n我已遵循 Firebase 的所有说明,但仍然遇到问题\xe2\x80 \xa6

\n

首要问题:

\n
\n

无法解析依赖关系,因为没有任何版本的“GoogleAppMeasurement”与要求 8.12.0 匹配,并且 root 依赖于“GoogleAppMeasurement”8.12.0。\n无法解析依赖关系

\n
\n

第二期:

\n
\n

没有这样的模块“Firebase”

\n

在范围内找不到“FirebaseApp”

\n
\n
import UIKit\nimport Firebase\n\n@main\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        FirebaseApp.configure()\n        return true\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

我该如何修复它?

\n

谢谢您的帮助 :)

\n

xcode dependencies firebase swift

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

Int或NSInteger作为方法参数的对象.Objective-C的

我在传递一个数字作为方法的参数时遇到了一些麻烦:

- (void)meth2:(int)next_int;
Run Code Online (Sandbox Code Playgroud)

要调用该方法,我需要这个:

int next_int = 1;
[self performSelectorOnMainThread:@selector(meth2:) withObject:next_int waitUntilDone:NO];
//update next_int and call meth2 again
Run Code Online (Sandbox Code Playgroud)

在这一点上,我得到一个"没有强制转换的整数指针"错误,并且会发生相同的情况NSInteger.一个NSNumber没用,因为它是不可变的,我需要不断更改值.知道我该怎么办?

谢谢.

iphone objective-c nsinteger

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

Xcode单元测试

我从来没有使用过单元测试,我理解它的用途,但我真的不知道何时以及如何使用它.

我想知道什么时候使用单元测试是值得的,也许有一些例子.

iphone unit-testing objective-c ios

13
推荐指数
2
解决办法
9643
查看次数

如何根据android材料设计中的图像颜色更改工具栏和状态栏颜色的颜色?

我开始学习Android材料设计.我在棒棒糖版本中学到了一些新功能.今天我试图根据图像的颜色更改工具栏和状态栏的颜色.任何人都可以指导我或提供任何链接,如何做到这一点?

截图

例如,更改视图寻呼机选项卡时,状态栏和工具栏的颜色会发生变化.先感谢您. 截图

styles.xml:

   < style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
            <item name="windowNoTitle">true</item>
            <item name="windowActionBar">false</item>
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
Run Code Online (Sandbox Code Playgroud)

主要活动:

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener,FragmentDrawerRight.FragmentDrawerListener1 {

    private static String TAG = MainActivity.class.getSimpleName();


    private Toolbar mToolbar;
    ViewPager viewPager;
    TabLayout tabLayout;
    private FragmentDrawer drawerFragment;
    private FragmentDrawerRight  drawerFragmentRight;
    private ImageView pone,ptwo;
    DrawerLayout drawer_layout;
    int mutedColor;
    private CollapsingToolbarLayout collapsing_toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        collapsing_toolbar  = (CollapsingToolbarLayout)findViewById(R.id.collapsing_toolbar);
        mToolbar = (Toolbar) findViewById(R.id.toolbar);

        setSupportActionBar(mToolbar);

        ptwo=(ImageView)mToolbar.findViewById(R.id.ptwo);


        drawerFragment = (FragmentDrawer)
                getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
        drawerFragmentRight = (FragmentDrawerRight) …
Run Code Online (Sandbox Code Playgroud)

android toolbar statusbar material-design android-5.0-lollipop

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