How to cancel an UIView animation?

If I have started an UIView animation using the UIView animation methods, how to cancel the animation while it is being executed?

This issue seems to be somewhat complicated.
There doesn't seem to be any direct way of telling a view to stop animating immediately (either by leaving the view to its current state or moving it immediately to its final state). It also tends to sometimes behave erratically when you try to interrupt an ongoing animation by starting a new one on the same view.
What would be great is if there was some way of telling a view to stop animating immediately and to remove itself from the animation engine (or whatever it is), similarly to how you can eg. tell an NSTimer to invalidate itself immediately. This would make it easy to then eg. restart the animation or do something else with the view without having to worry about the view still changing after you tried to do something else with it, or about extraneous animationDidStop selector calls (which could mess up things). However, as far as I can see, there's no such feature in UIView.
What you can try is to start a very short animation and set the animationDidStop selector to call whatever you wanted to do with the view at that point (eg. restart the animation). However, there doesn't seem to be any completely foolproof way of making this work for sure.
Firstly, you have to make sure that the view actually changes from its current state, else UIView will just skip animating it and never call your new animationDidStop selector, which is a huge nuisance. This also seems to be somehow buggy; in some situations only changing eg. the location of the view or only changing its alpha doesn't properly trigger the animation, while sometimes it does.
Secondly, it seems to be somewhat erratic whether UIView will call the original animationDidStop selector besides the newly defined one or not. What is worse the original selector might be called after the new one, as if the original animation never actually stopped. Thus you end up with one single animated view calling two different selectors at different points in time, which can mess things up pretty efficiently. And annoyingly, this only happens sometimes, not always.

Similar Messages

  • UIView Animation Problem with different Controllers

    Hello!
    I have a problem regarding the UIView animation and therefore, I have three questions:
    1. is it possible to flip from view old to view new whereby each of the views have their own controller?
    2. Can I only flip views sharing the same controller?
    3. Maybe someone could help me with the following issue: I have two views, and each of the views have their own controller.. the code snippet illustrates my approach.. When i start my code, the new view is added on top of the old view, and the flipping animation is animating the old view only behind the new view.. Sure, this is not what i want to have.
    MapPrototypeAppDelegate *app = (MapPrototypeAppDelegate *)[[UIApplication sharedApplication] delegate];
    ReadGroupsViewController *aReadGroupsViewController = app.readGroupsTableViewController;
    UIWindow *window = app.window;
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:[self.mapView superview] cache:YES];
    [UIView setAnimationDuration:1.3];
    [UIView setAnimationDelegate:self];
    [window addSubview:[aReadGroupsViewController view]];
    [UIView commitAnimations];
    thanks..

    sommeralex wrote:
    1. is it possible to flip from view old to view new whereby each of the views have their own controller?
    Yes.
    2. Can I only flip views sharing the same controller?
    The flip animation may be used to transition between any "old" and "new" view without regard to whether those views have different controller's, the same controller, or no controller at all.
    3. Maybe someone could help me with the following issue: I have two views, and each of the views have their own controller.. the code snippet illustrates my approach.. When i start my code, the new view is added on top of the old view, and the flipping animation is animating the old view only behind the new view.. Sure, this is not what i want to have.
    MapPrototypeAppDelegate *app = (MapPrototypeAppDelegate *)[[UIApplication sharedApplication] delegate];
    ReadGroupsViewController *aReadGroupsViewController = app.readGroupsTableViewController;
    UIWindow *window = app.window;
    [UIView beginAnimations:nil context:nil];
    // the next line is puzzling. what is 'self.mapView', and what do you expect its superview to be? If 'self' is a
    // view controller, what is the relationship between its 'view' property and its 'mapView' property? Does 'view'
    // also have a superview? Is 'view' above or below 'mapView'? Is there a view between 'mapView' and the window?
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:[self.mapView superview] cache:YES];
    [UIView setAnimationDuration:1.3];
    [UIView setAnimationDelegate:self];
    // apropos the question above, what view is being covered in the next statement?
    [window addSubview:[aReadGroupsViewController view]];
    [UIView commitAnimations];
    I think I need a better understanding of the view hierarchy we have before aReadGroupsVC.view is added. The problem you're having is probably caused by passing the wrong view as arg here: [self.mapView superview]. But I can't say for sure since I don't know how mapView is related to the view hierarchy, and I don't know what it's superview is. It might be easier to just explain your "old" view structure and tell us how you want it to change after the flip transition.
    - Ray

  • UIView Animation Question

    To all,
    I have a question about how to handle the asynchronous call when a UIView animation is created. My setup is as follows. I have a method in a view controller that get user input from and then makes external http calls. Since the calls could take a few seconds I wanted to notify the user when the call started and ended. In order to show this message I created a simple animation block in a method which I will list below.
    The animation simply slides a box up with a label on it and then slides it back down. A pop up slider if you will.
    This is my method which does the http processing simplified down.
    My problem is that since the animation call is asynchronous the and takes 4 seconds total to complete. If the HTTP processing takes less then 4 seconds (at times it does) the next displayMessage is called and my animation gets screwed up.
    The thoughts I have had were to have a check to see if the animation was running which is set true in the pop up reveal and false in the popup hide. Then I could simply sleep my thread if the boolean was true. But this wasn't working since the animation stop block was never called.
    I need to bounce ideas of you guys cause I don't know how to get past this basic problem.
    - (void)loadPostViewController:(id)sender
    [self displayMessage:@"Parsing address"];
    //Actual http processing code here which invokes external service
    [self displayMessage:@"Address processed"];
    - (void)displayMessage:(NSString *) inMessage
    CGFloat PostListViewXOFFSET = 20.0f;
    CGFloat PostListViewYOFFSET = 20.0f;
    NSInteger messageWidth = 150;
    NSInteger messageHeight = 60;
    self.transitioning = TRUE;
    self.view.userInteractionEnabled = NO;
    UIView *localContainerView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    CGRect messageFrame = CGRectMake(0,0,messageWidth, messageHeight);
    roundedRectangle *view = [[roundedRectangle alloc] initWithFrame:messageFrame x:0 y:0 Width:messageWidth Height:messageHeight cIndex:0 radius:10.0f positionIndex:0];
    CGRect frameOut = CGRectMake((localContainerView.bounds.size.width/2)-(messageWidth/2),localConta inerView.bounds.size.height+messageHe ight, messageWidth, messageHeight);
    UILabel *mylabel = [[UILabel alloc] initWithFrame:CGRectMake(PostListViewXOFFSET, PostListViewYOFFSET, messageWidth-40,20)];
    mylabel.font = [UIFont fontWithName:@"Helvetica" size:12];
    mylabel.textColor = [UIColor blackColor];
    mylabel.text = inMessage;
    mylabel.backgroundColor = [UIColor clearColor];
    self.messageLabel = mylabel;
    [view addSubview:mylabel];
    [mylabel release];
    view.frame = frameOut;
    self.messageView = view;
    [self.view addSubview:view];
    [UIView beginAnimations: nil context: nil]; // Tell UIView we're ready to start animations.
    [UIView setAnimationDelegate: self]; // Set the delegate (Only needed if you need to use the animationDid... selectors)
    [UIView setAnimationDidStopSelector: @selector(animationDidStop:finished:context:)]; // example of a selector called with context when animation finishes.
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration: 2.0f]; // Set the duration to 4/10ths of a second.
    CGRect frameIn = view.frame; // Get the current frame.
    frameIn.origin.x = (localContainerView.bounds.size.width/2)-(messageWidth/2); // Move the view completely on screen.
    frameIn.origin.y = localContainerView.bounds.size.height-(messageHeight+20.0f);
    view.frame = frameIn; // set the new frame
    [UIView commitAnimations]; // Animate!
    [view release];
    - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
    self.transitioning = FALSE;
    [self HideMessage];
    - (void)HideMessage
    NSInteger messageWidth = 150;
    NSInteger messageHeight = 60;
    UIView *localContainerView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    CGRect frameOut = CGRectMake((localContainerView.bounds.size.width/2)-(messageWidth/2),localConta inerView.bounds.size.height+messageHe ight, messageWidth, messageHeight);
    [UIView beginAnimations: nil context: nil]; // Tell UIView we're ready to start animations.
    [UIView setAnimationDelegate: self]; // Set the delegate (Only needed if you need to use the animationDid... selectors)
    [UIView setAnimationDidStopSelector: @selector(clearMessageView)]; // example of a selector called with context when animation finishes.
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration: 2.0f]; // Set the duration to 4/10ths of a second.
    self.messageView.frame = frameOut; // set the new frame
    [UIView commitAnimations]; // Animate!
    }

    To all,
    I have a question about how to handle the asynchronous call when a UIView animation is created. My setup is as follows. I have a method in a view controller that get user input from and then makes external http calls. Since the calls could take a few seconds I wanted to notify the user when the call started and ended. In order to show this message I created a simple animation block in a method which I will list below.
    The animation simply slides a box up with a label on it and then slides it back down. A pop up slider if you will.
    This is my method which does the http processing simplified down.
    My problem is that since the animation call is asynchronous the and takes 4 seconds total to complete. If the HTTP processing takes less then 4 seconds (at times it does) the next displayMessage is called and my animation gets screwed up.
    The thoughts I have had were to have a check to see if the animation was running which is set true in the pop up reveal and false in the popup hide. Then I could simply sleep my thread if the boolean was true. But this wasn't working since the animation stop block was never called.
    I need to bounce ideas of you guys cause I don't know how to get past this basic problem.
    - (void)loadPostViewController:(id)sender
    [self displayMessage:@"Parsing address"];
    //Actual http processing code here which invokes external service
    [self displayMessage:@"Address processed"];
    - (void)displayMessage:(NSString *) inMessage
    CGFloat PostListViewXOFFSET = 20.0f;
    CGFloat PostListViewYOFFSET = 20.0f;
    NSInteger messageWidth = 150;
    NSInteger messageHeight = 60;
    self.transitioning = TRUE;
    self.view.userInteractionEnabled = NO;
    UIView *localContainerView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    CGRect messageFrame = CGRectMake(0,0,messageWidth, messageHeight);
    roundedRectangle *view = [[roundedRectangle alloc] initWithFrame:messageFrame x:0 y:0 Width:messageWidth Height:messageHeight cIndex:0 radius:10.0f positionIndex:0];
    CGRect frameOut = CGRectMake((localContainerView.bounds.size.width/2)-(messageWidth/2),localConta inerView.bounds.size.height+messageHe ight, messageWidth, messageHeight);
    UILabel *mylabel = [[UILabel alloc] initWithFrame:CGRectMake(PostListViewXOFFSET, PostListViewYOFFSET, messageWidth-40,20)];
    mylabel.font = [UIFont fontWithName:@"Helvetica" size:12];
    mylabel.textColor = [UIColor blackColor];
    mylabel.text = inMessage;
    mylabel.backgroundColor = [UIColor clearColor];
    self.messageLabel = mylabel;
    [view addSubview:mylabel];
    [mylabel release];
    view.frame = frameOut;
    self.messageView = view;
    [self.view addSubview:view];
    [UIView beginAnimations: nil context: nil]; // Tell UIView we're ready to start animations.
    [UIView setAnimationDelegate: self]; // Set the delegate (Only needed if you need to use the animationDid... selectors)
    [UIView setAnimationDidStopSelector: @selector(animationDidStop:finished:context:)]; // example of a selector called with context when animation finishes.
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration: 2.0f]; // Set the duration to 4/10ths of a second.
    CGRect frameIn = view.frame; // Get the current frame.
    frameIn.origin.x = (localContainerView.bounds.size.width/2)-(messageWidth/2); // Move the view completely on screen.
    frameIn.origin.y = localContainerView.bounds.size.height-(messageHeight+20.0f);
    view.frame = frameIn; // set the new frame
    [UIView commitAnimations]; // Animate!
    [view release];
    - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
    self.transitioning = FALSE;
    [self HideMessage];
    - (void)HideMessage
    NSInteger messageWidth = 150;
    NSInteger messageHeight = 60;
    UIView *localContainerView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    CGRect frameOut = CGRectMake((localContainerView.bounds.size.width/2)-(messageWidth/2),localConta inerView.bounds.size.height+messageHe ight, messageWidth, messageHeight);
    [UIView beginAnimations: nil context: nil]; // Tell UIView we're ready to start animations.
    [UIView setAnimationDelegate: self]; // Set the delegate (Only needed if you need to use the animationDid... selectors)
    [UIView setAnimationDidStopSelector: @selector(clearMessageView)]; // example of a selector called with context when animation finishes.
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration: 2.0f]; // Set the duration to 4/10ths of a second.
    self.messageView.frame = frameOut; // set the new frame
    [UIView commitAnimations]; // Animate!
    }

  • I have created a 468x60 animated banner in Edge Animate. How do I save the animated image to my desktop? (not in html code)

    I have created a 468x60 animated banner in Edge Animate. How do I save the animated image to my desktop? (not in html code)

    Hi,
    This feature is not available in Adobe Edge animate. You can not export as image from Edge animate.
    Publish options available in edge describe here
    Edge Animate Help | Publish your content
    Regards,
    Devendra

  • How do you put edge animation in Magento?

    How do  you put edge animation in Magento please?

    Provide the name of the program you are using so a Moderator may move this message to the correct program forum
    This Cloud forum is not about help with program problems... a program would be Photoshop or Lighroom or Muse or ???

  • How to cancel the event in Item Adding and display javascript message and prevent the page from redirecting to the SharePoint Error Page?

    How to cancel the event in Item Adding without going to the SharePoint Error Page?
    Prevent duplicate item in a SharePoint List
    The following Event Handler code will prevent users from creating duplicate value in "Title" field.
    ItemAdding Event Handler
    public override void ItemAdding(SPItemEventProperties properties)
    base.ItemAdding(properties);
    if (properties.ListTitle.Equals("My List"))
    try
    using(SPSite thisSite = new SPSite(properties.WebUrl))
    SPWeb thisWeb = thisSite.OpenWeb();
    SPList list = thisWeb.Lists[properties.ListId];
    SPQuery query = new SPQuery();
    query.Query = @"<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + properties.AfterProperties["Title"] + "</Value></Eq></Where>";
    SPListItemCollection listItem = list.GetItems(query);
    if (listItem.Count > 0)
    properties.Cancel = true;
    properties.ErrorMessage = "Item with this Name already exists. Please create a unique Name.";
    catch (Exception ex)
    PortalLog.LogString("Error occured in event ItemAdding(SPItemEventProperties properties)() @ AAA.BBB.PreventDuplicateItem class. Exception Message:" + ex.Message.ToString());
    throw new SPException("An error occured while processing the My List Feature. Please contact your Portal Administrator");
    Feature.xml
    <?xml version="1.0" encoding="utf-8"?>
    <Feature Id="1c2100ca-bad5-41f5-9707-7bf4edc08383"
    Title="Prevents Duplicate Item"
    Description="Prevents duplicate Name in the "My List" List"
    Version="12.0.0.0"
    Hidden="FALSE"
    Scope="Web"
    DefaultResourceFile="core"
    xmlns="http://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
    <ElementManifest Location="elements.xml"/>
    </ElementManifests>
    </Feature>
    Element.xml
    <?xml version="1.0" encoding="utf-8" ?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <Receivers ListTemplateId="100">
    <Receiver>
    <Name>AddingEventHandler</Name>
    <Type>ItemAdding</Type>
    <SequenceNumber>10000</SequenceNumber>
    <Assembly>AAA.BBB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8003cf0cbff32406</Assembly>
    <Class>AAA.BBB.PreventDuplicateItem</Class>
    <Data></Data>
    <Filter></Filter>
    </Receiver>
    </Receivers>
    </Elements>
    Below link explains adding the list events.
    http://www.dotnetspark.com/kb/1369-step-by-step-guide-to-list-events-handling.aspx
    Reference link:
    http://msdn.microsoft.com/en-us/library/ms437502(v=office.12).aspx
    http://msdn.microsoft.com/en-us/library/ff713710(v=office.12).aspx
    Amalaraja Fernando,
    SharePoint Architect
    Please Mark As Answer if my post solves your problem or Vote As Helpful if a post has been helpful for you. This post is provided "AS IS" with no warrenties and confers no rights.

    Recommended way for binding the list event handler to the list instance is through feature receivers.
    You need to create a feature file like the below sample
    <?xmlversion="1.0"encoding="utf-8"?>
    <Feature xmlns="http://schemas.microsoft.com/sharepoint/"
    Id="{20FF80BB-83D9-41bc-8FFA-E589067AF783}"
    Title="Installs MyFeatureReceiver"
    Description="Installs MyFeatureReceiver" Hidden="False" Version="1.0.0.0" Scope="Site"
    ReceiverClass="ClassLibrary1.MyFeatureReceiver"
    ReceiverAssembly="ClassLibrary1, Version=1.0.0.0, Culture=neutral,
    PublicKeyToken=6c5894e55cb0f391">
    </Feature>For registering/binding the list event handler to the list instance, use the below sample codeusing System;
    using Microsoft.SharePoint;
    namespace ClassLibrary1
        public class MyFeatureReceiver: SPFeatureReceiver
            public override void FeatureActivated(SPFeatureReceiverProperties properties)
                SPSite siteCollection = properties.Feature.Parent as SPSite;
                SPWeb site = siteCollection.AllWebs["Docs"];
                SPList list = site.Lists["MyList"];
                SPEventReceiverDefinition rd = list.EventReceivers.Add();
                rd.Name = "My Event Receiver";
                rd.Class = "ClassLibrary1.MyListEventReceiver1";
                rd.Assembly = "ClassLibrary1, Version=1.0.0.0, Culture=neutral,
                    PublicKeyToken=6c5894e55cb0f391";
                rd.Data = "My Event Receiver data";
                rd.Type = SPEventReceiverType.FieldAdding;
                rd.Update();
            public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
                SPSite sitecollection = properties.Feature.Parent as SPSite;
                SPWeb site = sitecollection.AllWebs["Docs"];
                SPList list = site.Lists["MyList"];
                foreach (SPEventReceiverDefinition rd in list.EventReceivers)
                    if (rd.Name == "My Event Receiver")
                        rd.Delete();
            public override void FeatureInstalled(SPFeatureReceiverProperties properties)
            public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
    }Reference link: http://msdn.microsoft.com/en-us/library/ff713710(v=office.12).aspxOther ways of registering the list event handlers to the List instance are through code, stsadm commands and content types.
    Amalaraja Fernando,
    SharePoint Architect
    Please Mark As Answer if my post solves your problem or Vote As Helpful if a post has been helpful for you. This post is provided "AS IS" with no warrenties and confers no rights.

  • How do I add an animated gif to mail?

    How do I add an animated gif to mail and still have the animation active

    Dj
    I found this complete mail tutorial. Hope this will help you with unread messages.
    Regards,
    Joseph

  • How to cancel an order if transaction not complete

    How to cancel an order if transaction not complete

    Presuming you're referring to a purchase from the iTunes Store, go here:
    http://www.apple.com/support/itunes/contact/
    and follow the instructions to report the issue to the iTunes Store. Refunds are not guaranteed, but iTunes support should be able to help you in one way or another.
    Regards.

  • How to cancel an order or to remove one item, bought as a guest?

    how to cancel an order or to remove one item, bought as a guest?

    That does not help at all.
    Please explain.  Use sentences please.
    How do you buy something as a guest? 
    You have an iphone?
    You purchased an app?
    You don't want the app?  Simply delete it.  This is covered in the manual.
    If you do not explain what you are talking about, then it is very difficult to help

  • How to cancel excise invoice when mov type is 122

    Hello,
    We are creating the PO for one material. and make the GR for that material (material is Quality inspection material)
    so i,e the reason the material is goes to Quality inspection.
    Till then we are Made the J1IEX create the Part1 and Part2 entry.
    So in mean while in Quality all the material's are rejected so, now how to reverse the Part1 and Part2 entries.?
    How to cancel excise invoice when material is qulaity inpspection.
    What i made:
    Made the Return delivery means 122 mov doc and Try to cancell the excise invoice......but no successful
    Regards
    sapman man

    Hi
    Cancelling of excise invoice will be done in the following ways depending on the situation.
    Case 1:
    Create PO
    Do MIGO (create and post excise invoice)
    Create return delivery in quality inspection.
    Now we have to create a rejection inmvoice in J1IS with reference to the return delivery wherein the excise values gets reversed.
    If u try to reverse part 2 entries in J1IEX it will not come.
    Case2:
    Create PO
    Do MIGO (create and post excise invoice)
    Do cancellation of MIGO (102 mvt)
    With ref to vendor or internal excise invoice number just post the transaction. excise part 2 entries will get reversed. This will happen only if 102 entry exist for the PO line item.
    In a nutshell excise entries cancellation comes only if we cancel the material document. If we do return delivery then we have to create rejection excise invoice.
    Hope u get cleared in this regards
    Reg
    Raja

  • HT1918 how to cancel itunes match

    How do I cancel this?  I emailed this useless **** at apple and she gave me the wrong ansewer.  I already did put no renew of itunes match. 
    anyone know how to cancel this?
    Hello Ari,
    Lisa here, from iTunes Store Support. I understand that you would like to cancel your iTunes Match subscription. I am sure you are eager to have this issue resolved and I would be happy to assist you today!
    Please note that if you have an iTunes Match subscription, you can't change countries until the subscription has expired. Your subscription expires 08/18/2013.
    To turn off Auto-Renew for iTunes Match, follow these steps:
    1) Open iTunes.
    2) From the pull-down Store menu in the menu bar, Choose Store > Sign In.
    3) Enter your iTunes Store account name and password, then click Sign In.
    4) Go to the Store menu again, Choose Store > View My Account.
    5) Enter your account name and password a second time, then click View Account.
    You will be taken to your Apple Account Information page. On this page, simply click the "Turn Off Auto-Renew" button next to iTunes Match.
    For more information about iTunes Match, visit:
    http://www.apple.com/icloud/features/
    http://www.apple.com/itunes/whats-new/
    I hope this information is helpful! Please let me know if you require any further assistance with your account, as if you do, I would be glad to help. Thank you very much for being part of the iTunes Store family, Ari. I hope you have a great day!
    Sincerely,
    Lisa
    iTunes Store/Mac App Store Customer Support
    http://www.apple.com/support/itunes/ww
    Thank you for allowing me the opportunity to assist you.
    First Name : ari
    Last Name : newman
    Email : [email protected]
    Apple ID (Optional) : [email protected]
    Lang_Country : en_AU
    Product : iTunes Store
    Support Subject : Purchases, Billing & Redemption
    Sub Issue : itunes match
    GCRM Case ID : 413932684
    See additional info below
    Choose the iTunes Store or App Store for your country:  Australia
    Item title:  how to cancel itunes match
    Order number: 
    Details:
    Hi how do I cancel my itunes match?  I dont use and I am moving countries soon.  please let me know what I need to do to cancel iTunes Match?
    thanks
    © 2013 Microsoft
    Terms
    Privacy
    Developers
    English (United States)
    © 2013 Microsoft
    Terms
    Privacy
    Developers
    English (United States)

    Brian,
    Again, not accurate. When Match is "turned off" all of the Matched song instances are still shown in the Ibrary and all devices still stream - so, if you have your songs also stored on your local drive (which I choose to as one does not always have access to WiFi and I use the local instances of the songs for some music production/DJing), iTunes shows each song twice.  This is cumbersome if you simply want to play an album - you have to hear each song twice. There is no reason technologically they could not simply show the metadata for a song only once and simply hit the cloud object store when it it is not found as a local disk target. This would solve some of the issues and it is pretty much how any content delivery network (CDN) works - and this is how my local Genius Bar assured me it would work before I bought the service. I found they know little about Match.
    Other issues: I believe the "exclusive" Cloud Playtlist logic still stands - iTunes protests if you add a non-Matched song to a Playlist (as it assumes you want all Playlists to be cloudy). Also, the APLCARE person and I  could not figure out what "Removed" (under Cloud Status) means despite looking up several explanations on the Web. And, we found songs that were only in the cloud that should have also been on my local drive as I never deleted them. That said, it is also a pain to fully delete a song (local + the cloud). Plus, the logic in the Purchased section around what constitutes "Not On Computer" did not hold up. They have lots of logical challenges with thier workflow.
    Regardingyour suggestion, there is no way to "not use" Match. Only when one is disconnected from the iTunes store does Match seem to go away completely.The only thing you can turn off is the song syncing/matching/uploading. This amounts only to turning off a sub-process not the service.
    Match is likely fine for most who do not want to have any copy of the songs locally and are fine having access to their music only when connected via WiFi. I wanted more ubiquitous access to my collection from my iPad and my iPhone but needed to keep my songs local to my MBP too. This is not the proper use case as I have learned.
    Of course I won't renew, but I should be able to cancel a service that I am dissatisfied with.

  • Recently I have added a new icloud account for my iphone but now my email is hacked and I cant complete the verification process.How to cancel the verification in my phone?  plsz help me.....

    Hi
    Recentky I have added a new icloud account to my iPhone 5s but my email is now hacked! so I can't complete the verification procedures. How to cancel the current verification process????plszz help me...

    Ah thanks Razmee however there is NO option to delete the iCloud account in settings!

  • How to cancel tabbed viewing in Fireworks CS5?

    How to cancel tabbed viewing in Fireworks CS5? I don't like tabs, but I couldn't find in Preferences an option to cancel it.

    Choose Window > Cascade from the main toolbar.

  • How to cancel an idoc in status 64

    How to cancel an idoc in status 64

    Hi Manju,
    If you have table updation access then
    Go to SE16 --> Table EDIDC --> Give your "IDoc number" -->  change the status from 64 to "73 IDoc archived".
    Or you can ask to your ABAPer to do that.
    Hope it helps,
    Regards,
    MT

  • How to cancel email notification from snapshot and simulation

    Hi,
    We've activated workflow template WS28700001 so that email notification can be triggered when task release. Meanwhile we are using snapshot and simulation at the same time. But when saving sanpshot or simulation the tasks which have status of released also trigger email nofitication. How to cancel this notification of snapshot and simulation?
    Regards.

    Hi Ravi
    I have added a Container Element(version) in workflow template WS28700001 and set a workflow start condition as follows.
    &Task.Version& = ' '
    Regards
    Yemi

Maybe you are looking for